好像好久不写blog blahblah 之类的东西了,但愿这次会坚持的久一点。
lz最近想找一台slave 机来玩(本机Ubuntu 14.04),想装一个other linux 发行版,脑抽的问了stonekyx,他在使archlinux,用户体验是最好的linux 发行版,然后我的好奇心就上来了,然后就果断去踩坑去了YMD。
Step 1: 到官网下载iso, dual 版本的会包含cpu32/64 两个版本的iso, 在setup 的时候选择一下就好。
Step 2: 制作启动盘,在linux 下就比较容易了。lz 用usb stick 来简单搞。
格式化前要备份u 盘文件, 查看一下u 盘的/dev/sdx 名字, 否则不小心把自己的磁盘搞坏了就不好了,格式化后就把iso burn into usb stick 就好啦。
# sudo fdisk -l # sudo umount /dev/sdx # sudo mkfs.ext4 /dev/sdx # sudo dd if=/path/to/archlinux.iso of=/path/to/usb.stick bs=4M
注:1、 bs 参数是一次写入字节数,应该限于硬件的读写速度。
Step 3: setup archlinux。
建议先去瞄一眼官方安装教程, lz 使用的是bios+gpt+grub
结构, 其他问题自行在wiki 或者bbs 上找答案吧。接下来lz 讲述一下setup 的慢慢长路。
setup 的过程可以简单描述为简单手动模拟linux 内核加载过程, setup 完成后会对linux 有新的理解。
Partition the disks & Format partitions
因为lz 需要的是standalone 的archlinux, 所以没有alongside windows 的顾虑, 直接乱搞/dev/sda。
# mkfs.ext4 /dev/sda # gfdisk /dev/sda # parted /dev/sda set 1 bios_grub on # mkswap /dev/sdax # swapon /dev/sdax # mount /dev/sdax /mnt/path/to/mount
格式化sda 后就可以分区了, gpt 和 mbr 的分区格式区别见相关wiki,
使用gfdisk 分区的时候地一个分区会默认有1007B 的Free Space, 因为gpt 的分区格式需要1M 的空间(必须是磁盘的first partition, 且命名之)来设置为 bios boot type, 否则在最后把grub 装到磁盘的时候会报错。 然后分别把分区挂到/mnt 下。
接下来设置internet access。 正常的话插网线后设置一下ip 之类的是可以自动上网的,但是lz 偏偏不是正常的。 archlinux 改变了eth0 这样的cable interface 命名规则,比如lz 的是enp2s0, `ip link` 发现只有lo。。。 原因是lz 的Ethernet controller 是 Broadcom BCM57780,解决方案详见相关wiki。
# lspci # modprobe -r tg3 # modprobe broadcom # modprobe tg3 # ip link
后发现enp2s0,
然后配置ip blahblah, 因为archlinux 有内置的netctl 所以就用吧, 还是比较方便的。
# cp /etc/netctl/examples/ethernet-static /etc/netctl/my-ethernet-static # nano /etc/netctl/my-ethernet-static # ip link set enp2s0 down # netctl start my-ethernet-static
修改mirrorlist。
lz 享用ZJU mirrors, 好开心, 修改后更新之, 并install base system。
# nano /etc/pacman.d/mirrorlist ## ADD ‘Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch’ TO THE BEGINNING OF IT. ## # pacman -Syy # pactrap /mnt base base-devel
生成fstab(分区表)。
然后进入系统。
# genfstab /mnt > /mnt/etc/fstab # arch-choot /mnt /bin/bash
Step 4: 配置archlinux 系统。
初始化内存后配置一些基本信息(Optional)。
# mkinitcpio -p linux # nano /etc/locale.gen # locale-gen # ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # echo "$myhostname" > /etc/hostname # passwd
安装并配置bootloader(grub)。 这部分lz 参考了这里。
# pacman -S grub # nano /etc/default/grub ## Add GRUB_DISABLE_SUBMENU=y at the end of it ## # grub-mkconfig -o /boot/grub/grub.cfg # grub-install --recheck /dev/sda # exit # umount -R /mnt # reboot ## GOOD LUCK TO YOU ##
如果拔掉usb stick 能进入到archlinux 的系统, 那么就接下来要装图形化桌面blah blah 的了。
TO BE CONTINUED...
Zacky 原创,转载请注明出处。