安装 gentoo 64位 记录
一. 制作启动盘
因为提前下载好了 stage3, 所以直接把 stage3 做到镜像里面去,
首先打包stage3相关文件, tar -cvf stage3.tar stage3
然后挂载镜像 mount -o rw xxx.iso /mnt/gentoo
,
然后追加文件 mkisofs -o ~/new.iso /mnt/gentoo ~/stage3*
, 这样就得到了一个包含stage3的镜像. 但是我发现这样是启动不了的.
所有我后来先建立一个文件夹 gentoo, 然后把镜像里面的所有内容复制到gentoo里面,再把 stage3 也复制到 gentoo 里面.
然后 mkisofs -o gentoonew.iso -J -r -v -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "Gentoo_amd64_stage_20170105" gentoo
这样就作出了一个新的镜像.
mkisofs
来自: mmkisofs
来自:
因为我笔记本是双硬盘,所以我的U盘是 /dev/sdc1
, 使用dd指令, dd if=xxx.iso of=/dev/sdc bs=1M
. 这样就得到一个包含了 stage3 的启动盘. 注意这边用sdc 而不是 sdc1.
但是老是提示我没有可用空间了, 然后我才发现我的U盘是山寨的, 8G 硬盘 只有480M可用.
然后我重新找了个U盘, 先用WIN 下面的 ultraiso 来做一个包含 stage3 的启动U盘. 然后使用这个启动盘启动进入系统.
二: 配置网络 配置WPA的无线网络, 首先使用 ifconfig 查看自己的无线网卡名是什么, 比如说 xxx 然后
vi /etc/conf.d/net
modules="wpa_supplicant"
wpa_supplicant_xxx="-Dwext"
config_xxx="dhcp"
vi /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="yyy"
psk="zzz"
proto=WPA
key_mgmt=WPA-PSK
group=CCMP
pairwise=CCMP
priority=2
}
ln -s /etc/init.d/net.lo /etc/init.d/net.xxx
/etc/init.d/net.xxx restart
ping 如果能够通了,那么无线网络设置就可以了.
三. 磁盘分区
parted -a optimal /dev/sda
mklabel gpt
unit mib
mkpart primary 1 3
name 1 grub
set 1 bios_grub on
mkpart primary 3 131
name 2 boot
mkpart primary 131 8323
name 3 swap
mkpart primary 8323 -1
name 4 rootfs
set 2 boot on
quit
这样磁盘就分好区了. SWPA 8G.
进行格式化
mkfs.ext2 /dev/sda2
mkfs.ext4 /dev/sda4
开启SWAP
mkswap /dev/sda3
swapon /dev/sda3
挂载硬盘
mount /dev/sda4 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda2 /mnt/gentoo/boot
date
解压 stage3
cd /mnt/gentoo
cp -rf /mnt/cdrom/stage ./
tar xvjpf stage3*.tar.bz2
四. 设置portage 设置 portage
vi ./etc/portage/make.conf
CFLAGS="-march=native -O2 -pipe"
MAKEOPTS="-j3"
选择镜像, 注意使用空格选择, 我选择了163. 这步骤如果没有选择,后面可以手动在 文件中加入 GENTOO_MIRRORS的变量来指定镜像.
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
mkdir /mnt/gentoo/etc/portage/repos.conf
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
cp -L /etc/resolv.conf /mnt/gentoo/etc/
五. chroot
mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
六. 使用新的配置更新系统 emerge-webrsync eselect profile list eselect profile set 3 选择 desktop emerge --ask --update --deep --newuse @world 这会花费非常多的时间,这边可以先不选择 desktop, 先把系统跑起来之后,再选择 desktop 然后更新.
七. 设置时间 ls /usr/share/zoneinfo/Asia echo "Asia/Shanghai" > /etc/timezone emerge --config sys-libs/timezone-data vim /etc/locale.gen
en_US ISO-8859-1 en_US.UTF-8 UTF-8 zh_CN GBK zh_CN.UTF-8 UTF-8
local-gen
eselect locale list 这里为了以后查资料方便,所以选择的是英文环境 en_US.utf8 eselect locale set 5
env-update && source /etc/profile && export PS1="(chroot) $PS1"
八. 编译内核 下载源码 emerge --ask sys-kernel/gentoo-sources 下载一个生成 initramfs工具 emerge --ask sys-kernel/genkernel
配置fstab vim /etc/fstab /dev/sda2 /boot ext2 defaults 0 2
因为手动配置内核很难保证一次完美,为了安装方便,第一次使用genkernel,后面有时间再手动慢慢来调教内核. genkernel all
关于模块, 暂时先不加载模块, 后面再调整. find /lib/modules// -type f -iname '.o' -or -iname '.ko' | less vim /etc/conf.d/modules
按照驱动 emerge --ask sys-kernel/linux-firmware
九.配置fstab 查看分区标签 blkid
( 这个地方有错误, 这个错误导致了后面不能读写的问题, 具体在本文后面有叙述.) vim /etc/fstab LABEL=boot /boot ext2 noauto,noatime 0 2 LABEL=swap none swap sw 0 0 LABEL=rootfs / ext4 noatime 0 1
十.配置网络 (后来发现这一个步骤没有按照无线网卡软件, 也没有对无线网卡参考开头进行相应的配置, 导致了后面的问题.) vim /etc/conf.d/hostname hostname="xxx"
vim /etc/conf.d/net dns_domain_lo="xxx"
emerge --ask --noreplace net-misc/netifrc ifconfig 查看现在的网卡名称 vim /etc/conf.d/net config_xxx="dhcp"
配置网络自启动 cd /etc/init.d ln -s net.lo net.xxx rc-update add net.xxx default
vim /etc/hosts 127.0.0.1 xxx.xxx xxx xxx
十一. 设置密码和启动 passwd
设置启动 vim /etc/rc.conf vim /etc/conf.d/keymaps 默认的 us 键盘就可以 vim /etc/conf.d/hwclock 默认的UTC就很好.
十二. 系统工具 系统log emerge --ask app-admin/sysklogd rc-update add sysklogd default
文件系统 emerge --ask sys-fs/dosfstools emerge --ask sys-fs/ntfs3g
DHCP emerge --ask net-misc/dhcpcd
十三. 系统引导 配置GRUB echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf emerge --ask --update --newuse --verbose sys-boot/grub:2 emerge --ask --newuse sys-boot/os-prober 让grub 能够检测到其他的系统
ls /boot 查看/boot分区有没有加载 emerge --ask --verbose parted 安装分区软件 parted print 检查 boot 分区有没有 bios grub, 没有就用下面这条设置,有的话就跳过. (parted)set 1 bios_grub on
grub-install /dev/sda grub-mkconfig -o /boot/grub/grub.cfg
十四. 准备重启( 这时候我犯了一个大错误, 没有安装无线网卡的软件, 并且对网络进行配置, 这时候应该安装软件,并且参考开头部分对网络进行相应的设置) emerge --ask --verbose livecd-tools emerge --ask --verbose mirrorselect
exit cd umount -l /mnt/gentoo/dev{/shm,/pts,} umount -R /mnt/gentoo reboot
十五. 重启能够进入系统, 发现不能上网, 重新 chroot, 然后安装 wpa_supplicant vi /etc/conf.d/net modules="wpa_supplicant" wpa_supplicant_xxx="-Dwext" config_xxx="dhcp"
vi /etc/wpa_supplicant/wpa_supplicant.conf network={ ssid="yyy" psk="zzz" proto=WPA key_mgmt=WPA-PSK group=CCMP pairwise=CCMP priority=2 }
ln -s /etc/init.d/net.lo /etc/init.d/net.xxx
/etc/init.d/net.xxx restart
ping 如果能够通了,那么无线网络设置就可以了.
挂载硬盘 mount /dev/sda4 /mnt/gentoo mkdir /mnt/gentoo/boot mount /dev/sda2 /mnt/gentoo/boot
chroot mount -t proc proc /mnt/gentoo/proc mount --rbind /sys /mnt/gentoo/sys mount --make-rslave /mnt/gentoo/sys mount --rbind /dev /mnt/gentoo/dev mount --make-rslave /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash source /etc/profile export PS1="(chroot) $PS1"
emerge --ask --verbose wpa_supplicant
vim /etc/conf.d/net modules="wpa_supplicant" wpa_supplicant_xxx="-Dwext"
vim /etc/wpa_supplicant/wpa_supplicant.conf network={ ssid="yyy" psk="zzz" proto=WPA key_mgmt=WPA-PSK group=CCMP pairwise=CCMP priority=2 }
exit cd umount -l /mnt/gentoo/dev{/shm,/pts,} umount -R /mnt/gentoo reboot
十六. 出大事情了. 不能写入硬盘 再次进入系统,发现硬盘上面的文件都不能写入, 错误是 EXT2的错误, 错误码 (2c0) 经过一段时间的排查, 发现是 fstab 里面的问题, 我这个系统里面必须写 /dev/sda4 这种模式, 不要用 LABEL=rootfs 这种模式. 修改之后重启就没有问题了.
十七. 双硬盘, 双系统
grub-install /dev/sda grub-mkconfig -o /boot/grub/grub.cfg 在显示的信息里面能够看到 grub发现了WIN7, 并且加入了启动选项. 重启, 选择WIN7, 顺利进入, 一切正常.
十八. 普通用户 useradd -m -G users,wheel,audio -s /bin/bash xxx passwd xxx
到此, 整个安装过程结束. 达到了第一阶段完成. 后面就是 portage 之类的事情了.