在VirtualBox安装Arch Liux初步指南

简单地写一下在VirtualBox上安装Arch Linux的过程,以此为在PC上安装做准备。在PC上安装的过程和下面描述的基本一致。

##0x00 准备

  1. 下载iso文件:在Arch官网上下载最新的镜像,这里 我选用了163.com节点的资源,下载archlinux-2015.01.01-dual.iso;

  2. 检查文件的完整性:在MAC中使用md5或者sha1检验文件的完整行,并和下载站点提供的值进行比较。

    <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">o</span><span class="mord mathnormal">p</span><span class="mord mathnormal">e</span><span class="mord mathnormal">n</span><span class="mord mathnormal">ss</span><span class="mord mathnormal" style="margin-right:0.01968em;">l</span><span class="mord mathnormal">s</span><span class="mord mathnormal">ha</span><span class="mord">1</span><span class="mord mathnormal">a</span><span class="mord mathnormal">rc</span><span class="mord mathnormal">h</span><span class="mord mathnormal" style="margin-right:0.01968em;">l</span><span class="mord mathnormal">in</span><span class="mord mathnormal">ux</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">2014.12.01</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">d</span><span class="mord mathnormal">u</span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.01968em;">l</span><span class="mord">.</span><span class="mord mathnormal">i</span><span class="mord mathnormal">so</span><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="mord mathnormal" style="margin-right:0.08125em;">H</span><span class="mord mathnormal">A</span><span class="mord">1</span><span class="mopen">(</span><span class="mord mathnormal">a</span><span class="mord mathnormal">rc</span><span class="mord mathnormal">h</span><span class="mord mathnormal" style="margin-right:0.01968em;">l</span><span class="mord mathnormal">in</span><span class="mord mathnormal">ux</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">2014.12.01</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">d</span><span class="mord mathnormal">u</span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.01968em;">l</span><span class="mord">.</span><span class="mord mathnormal">i</span><span class="mord mathnormal">so</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord">86085153</span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mord">97</span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mord">0097</span><span class="mord mathnormal">fd</span><span class="mord">0</span><span class="mord mathnormal">a</span><span class="mord">02496</span><span class="mord mathnormal">e</span><span class="mord">67</span><span class="mord mathnormal">c</span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mord">85138</span><span class="mord mathnormal">c</span><span class="mord">1</span><span class="mord mathnormal">ba</span><span class="mord">5</span></span></span></span> md5 archlinux-2014.12.01-dual.iso 
    MD5 (archlinux-2014.12.01-dual.iso) = 667ed3c5e935666edfd54a2271e05b72
    

##0x01 创建虚拟机

  1. 给虚拟机一个名字

  2. 内存:最小为256MB

  3. 创建新的虚拟磁盘

  4. 文件类型

  5. 动态分配

  6. 文件位置和大小,最小10GB

  7. 如果要安装桌面环境的话就勾选Enable 3D Acceleration

  8. 第一次启动虚拟机时,选取之前下载的ISO文件

##0x01 开始安装

  1. 选择32位或者64位Arch

    一旦看到如下提示,就可以开始进行配置了:

  2. 更改键盘布局和设置语言:

    默认键盘布局为us,非us布局可以用如下命令修改:

    # loadkeys layout
    

    layout可以是uk, dvorak等。设置语言:

  3. 磁盘分区

    先看一下磁盘状态:

    # ls /dev
    

    开始啦,一般创建四个分区:/, /boot, /home, swap

    # gdisk /dev/sda
    

    当出现下面命令时, 开始分区,一下以/boot分区为例:

    Command (? for help):
    

    a. 创建新分区:‘n’ b. 分区号码:回车默认从0开始递增 c. “first sector”: 回车默认从上一个分区结束处开始,初始为0 d. “last sector”: ‘+250MB’ e. “hex code”: 回车默认(8300 为“Linux File System“),swap分区输入8200, 见这儿

    依次给swap分配’+1G’(和分配的RAM一样大),/boot分配’+8G’,/home分配’+1G’,再次看一下磁盘的状态,可以看到已经分配好了, 键入’w’并回车即可保存修改。

  4. 格式化分区

    再次回到命令行:

    root@archiso ~ #
    

    格式化分区:

    # mkfs -t ext4 /dev/sda1
    # mkfs -t ext4 /dev/sda3
    # mkfs -t ext4 /dev/sda4
    
    # mkswap /dev/sda2
    
  5. 挂载新分区

    # swapon /dev/sda2
    
    # mount /dev/sda3 /mnt
    # cd /mnt
    # mkdir boot home
    # mount /dev/sda1 boot
    # mount /dev/sda4 home
    
  6. 安装Arch

    # cd /
    # pacstrap /mnt base base-devel
    
  7. 生成fstab文件

    # genfstab -p /mnt >> /mnt/etc/fstab
    

    可以看看fstab里面的内容:

    # more /mnt/etc/fstab
    
  8. 初始化安装Boot Loader

    # pacstrap /mnt syslinux
    
  9. 配置安装

    运行以下命令:

    # arch-chroot /mnt
    

    得到:

    sh-4.2#
    

    这个shell很基础,用Bash也许更好些:

    # bash
    

    得到:

    [root@archiso /]#
    

    设置语言:

    # nano /etc/locale.conf
    

    添加:

    LANG="en_US.UTF-8"
    
    # nano /etc/locale.gen
    

    将下面两行前面#去除:

    en_US.UTF-8 UTF-8
    de_DE.UTF-8 UTF-8
    

    完成语言设置:

    # locale-gen
    

    设置时间:

    # ln -s /usr/share/zoneinfo/<your_state>/<your_city> /etc/localtime
    

    比如我设置的是:

    # ln -s /usr/share/zoneinfo/Asia/Chongqing /etc/localtime
    

    改hostname:

    # nano /etc/hostname
    
  10. 完成Bootloader安装

    # cd /boot/syslinux/
    

    打开syslinux.cfg文件,找到“comboot modules“一段:

    # more syslinux.cfg
    

    将其中列举的文件copy到本地,同时还要加上’libutil.c32’:

    # cp /usr/lib/syslinux/bios/menu.c32 .
    # cp /usr/lib/syslinux/bios/vesamenu.c32 .
    # cp /usr/lib/syslinux/bios/chain.c32 .
    # cp /usr/lib/syslinux/bios/hdt.c32 .
    # cp /usr/lib/syslinux/bios/reboot.c32 .
    # cp /usr/lib/syslinux/bios/poweroff.c32 .
    # cp /usr/lib/syslinux/bios/libutil.c32 .
    

    一旦完成上述设置,

    # extlinux --install /boot/syslinux
    # dd conv=notrunc bs=440 count=1 if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/sda
    # mkinitcpio -p linux
    
  11. 完成安装

    最后,更改root密码:

    # passwd
    

    输入两次exit退回到:

    [root@archiso /]#
    

    umount所有的分区:

    # umount /mnt/boot
    # umount /mnt/home
    # swapoff /dev/sda2
    # umount /mnt
    

    在重启之前最后一步,设置/boot分区的BIOS标识为’bootable’:

    # sgdisk /dev/sda --attributes=1:set:2
    
  12. 重启Arch

    # reboot
    

    重启之后会再次进入CD启动,这时,去除安装CD,再次重启:

    Devices > CD/DVD Devices > Remove disk from virtual drive
    

    等待一小会:

    Congradulations!

  13. 后续工作

    链接网络:

    dhcpcd
    

    安装’sudo’:

    # pacman -S sudo
    

    添加’sudoer’:

    # nano /etc/sudoers
    
    ##
    ## User privilege specification
    ##
    root ALL=(ALL) ALL
    qiwihui ALL=(ALL) ALL
    

    保存,并log out:

    # exit
    

    以新的ID和密码重新登录。

    最后,每次登录的时候自动获取ip:

    # sudo systemctl enable dhcpcd@eth0.service
    

这样最基本的Arch Linux就好了,Desktop Environment就不装了。

0x02 参考文档