美文网首页开发者的乱七八糟我爱编程Arch
知其所以然:在 VirtualBox 里安装 Arch Linu

知其所以然:在 VirtualBox 里安装 Arch Linu

作者: EzVoodoo | 来源:发表于2015-04-06 10:31 被阅读0次

    本文的写作目的不只是提供一个流水线式的 Arch Linux 的安装步骤,更希望通过一些简单的讲解使各位了解一些基本的 Linux 系统知识。即 “知其然,知其所以然。”

    在 VirtualBox 中安装 Arch Linux 的主要步骤如下:

    1. 准备 VirtualBox。
    2. 磁盘分区。
    3. 分区格式化。
    4. 配置安装包镜像源。
    5. 挂载分区并安装系统。
    6. 生成 fstab 文件。
    7. 配置系统选项。
    8. 安装 Boot Loader。

    1. 准备 VirtualBox (VBox)

    • 在 VBox 中建立虚拟机项目,选择适合你的电脑的配置参数。我选择的是:处理器核心 x2、内存 2 GB、显存 128 MB、硬盘空间 100 GB(动态分配)。
    • 在 VBox 中选择:设置 -> 存储 -> IDE 控制器中加载 Arch Linux 光盘镜像。
    • 在 设置 -> 系统 -> 启动顺序 里,选择光盘优先启动。启动系统,出现如下启动画面:
    Arch Linux 启动画面
    • 选择 Boot Arch Linux,开始安装系统(注意我安装的是32位的 Arch Linux)。

    2. 磁盘分区与格式化

    以 root 身份登录系统。


    第一次以 root 身份登陆

    使用 lsblk 命令来查看当前的分区状况:

    使用 **lsblk** 命令查看分区情况
    这里大小为 102 GB 的 sda 就是未分区、未格式化的原始硬盘空间。其它部分是光盘启动的 Arch Linux 系统的分区部分,可忽略。

    分区工具:使用官方指南中的 parted 工具和常用的 fdisk 工具都可以。这里使用有交互界面的 cfdisk 工具。注意为了后续 Boot Loader 的安装方便,我们选择使用传统的 MBR 分区表方案。所以在进入 cfdisk 之后,首先选择 dos 选项,即使用 MBR 分区表方案。

    使用 New 选项新建分区,手动输入分区大小。我的分区方案为:启动分区 (boot) 250 MB,交换分区 (swap) 2.2 GB (稍大于虚拟机的内存容量),根目录 ("/") 分区 99.6 GB,结果如下图所示。(你也可以为 "/home" 目录建立单独的分区,方法与建立根目录分区类似,不再赘述。)

    **cfdisk** 中的3分区方案

    Arch Linux 社区中文安装指南中有如下警告:

    cfdisk 创建的第一个分区起始位置是63扇区而不是通常的2048扇区。这将会在 SSD 和使用高级格式化(4k 扇区)的设备上造成性能问题。

    现在看来至少在使用 VBox 安装 Linux 时可以忽略该警告,因为第一个分区的起始扇区确实是 2048 而不是 63。因此也就不会发生 “因为硬盘没有 4 K 扇区对齐而导致性能问题”

    将 sda1 设为启动分区 (bootable) ,将全部改动写入分区表 (write 选项,输入 yes,回车),然后退出 (quit) cfdisk 工具。

    使用 lsblk 命令查询分区状况如下,分区成功!

    分区结束后使用 **lsblk** 命令查询分区状况

    3. 分区格式化

    首先,格式化启动与根目录分区:

    mkfs.ext4 /dev/sda1
    mkfs.ext4 /dev/sda3

    然后格式化交换分区

    mkswap /dev/sda2

    同时开启交换分区,为下面的 fstab 写入做好准备 (后文详述)。

    swapon /dev/sda2

    4. 配置安装包镜像源

    现在可以先 ping 一下网络,VBox 应该已经自动配置了联网。

    ping -c 3 114.114.114.114

    因为系统安装过程中要下载软件安装包,所以选择在国内的镜像源可以大大加快软件下载和安装的进度。我选择了速度较快的浙大、中科大和 163 的镜像源。Arch Linux 镜像源的状态可以在这里查看。

    使用 nano 文本编辑器对镜像源列表进行编辑:

    nano /etc/pacman.d/mirrorlist

    在文件中服务器列表的开头部分添加:

    ## China
    Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch
    Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
    Server = http://mirrors.163.com/archlinux/$repo/os/$arch
    

    编辑完后的文件如下图所示:


    编辑后的镜像源列表

    文件编辑之后使用 Ctrl+x 进行保存(连续输入:Ctrl+x,y,回车;或者Ctrl+x,n,回车:放弃保存)。

    在本机同步镜像源数据库,输入:

    pacman -Syy

    5. 挂载分区并安装系统

    到现在为止,我们的所有操作都是在光盘启动的 Linux 系统中进行的。下面要将真正的 Linux 系统文件安装到虚拟机的硬盘中。前文中进行了分区与格式化之后的硬盘分区,首先要经过“挂载” (mount) 操作,才能够供我们访问。

    首先挂载根目录:

    mount /dev/sda3 /mnt

    在根目录中创建启动目录 (boot),并挂载它:

    mkdir -p /mnt/boot
    mount /dev/sda1 /mnt/boot

    回到根目录,现在终于可以把系统文件安装到我们刚才创建的硬盘分区中去了。Arch Linux 团队为此准备了专门的脚本工具 pacstrap,执行下面的命令以安装系统文件:

    pacstrap /mnt base base-devel

    其中 /mnt 是当前根目录所在的挂载点,base 包中是最基本的 Linux 系统文件, base-devel 包中包含了一些常用的开发工具,建议同时安装两个包。

    6. 生成 fstab 文件

    为了让系统能够在每次重启之后自动挂载各个分区(包括交换分区),我们需要把当前的分区挂载方式写入到一个叫做 fstab 的文件中去。执行下面的脚本命令,生成 Linux 系统需要的 fstab 文件:

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

    记得检查 fstab 文件的内容,以确保万无一失。

    more /mnt/etc/fstab

    fstab 文件内容

    7. 配置系统选项

    因为还没有正确安装 Boot Loader,所以现在我们还不能重新启动系统。好在 Arch Linux 团队提供的 arch-chroot 工具可以让我们暂时登录到已经安装好的 Linux 系统中去开始系统配置。执行命令:

    arch-chroot /mnt

    注意提示符变为 sh-4.3#,我们已经成功登陆刚刚安装的 Arch Linux 系统,执行 ls -al 试试:

    根目录下已经安装好的各个目录

    下面首先对 Linux 系统的 locale (读作[ləʊˈkɑːl)进行配置。Linux 的 locale 文件中储存了与“本地化”相关的诸如时间格式、货币单位、语言编码之类的信息,通过 locale 配置,可以使 Linux 更符合我们的使用习惯。使用 nano 编辑/etc/locale.gen文件:

    nano /etc/locale.gen

    移除一行之前的 "#" 符号(即取消注释)来选择你需要的locale。我的选择是:

    en_US.UTF-8 UTF-8
    zh_CN.GBK GBK
    zh_CN.UTF-8 UTF-8
    zh_TW.UTF-8 UTF-8

    包含了美语英文 UTF-8 编码,简体中文 GBK 与 UTF-8 编码,以及繁体中文的 UTF-8 编码。

    使用 locale-gen 命令来生成 locale 信息:

    locale-gen

    创建 locale.conf 并选择要使用的本地化选项 (使用 echo xxx > yyy 的命令,可以把 echo 命令的输出内容即 xxx 重定向到 yyy 文件中去,这与使用 nano 编辑器对 yyy 文件进行编辑效果相同,只是更快捷):

    echo LANG=en_US.UTF-8 > /etc/locale.conf

    注意中文安装指导提醒:

    不推荐在此设置任何中文locale,或导致tty乱码。

    设定时区:

    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    设置硬件时间为UTC模式,以免在时区和夏令时调整时产生错误(注意 systohc 和 utc 之前都是两个 "-" 符号):

    hwclock —systohc —utc

    设定主机名:

    echo 你的主机名 > /etc/hostname

    设置 root 密码:

    passwd

    从光盘启动的 Arch Linux 可以联网是因为启动光盘自动进行了网络配置。现在我们来为新系统进行网络配置。输入 ip a 命令,查看当前的网络连接,记下当前网络接口的名称:enp0s3

    ip a

    查看当前的网络连接

    在网络配置目录中,创建 my_network 文件,拷贝 dhcp 样本文件的设置即可。

    cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/my_network

    修改 my_network 文件 Interface 字段,把当前网络接口的名称写入即可。


    修改 Interface 为enp0s3

    把 my_network 作为默认网络配置。

    netctl enable my_network

    8. 安装 Boot Loader

    电脑开机之后,处理器会到固定的位置去读取磁盘内容,这个“固定的位置”一般就在磁盘的最开始位置。放在这个位置的软件,就叫做 Boot Loader,它的作用是为处理器指明操作系统的安装位置,使得处理器可以进一步的读取并执行操作系统。

    下载 Grub Boot Loader,将其安装到 Arch Linux 被安装到的 硬盘中 (sda),然后生成启动所需要的 grub 文件。

    pacman -S grub
    grub-install --target=i386-pc --recheck /dev/sda
    grub-mkconfig -o /boot/grub/grub.cfg

    安装后的命令行输出如下所示:


    安装 Grub Boot Loader 工具

    下面从安装的 Linux 中退出,卸载刚才挂载的文件系统,然后关机。这样原始 Arch Linux 的安装就完成了。

    exit
    umount /mnt/boot
    umount /mnt
    poweroff

    移除光盘镜像,重新启动系统:


    移除 VBox 加载的光盘镜像

    Tada... Welcome to bare bone Arch Linux!欢迎来到荒凉的无主之地。

    重新启动,root 登陆

    注:个人知识能力有限,难免有遗漏、错误的地方,欢迎大家通过评论与我交流。

    参考资料

    相关文章

      网友评论

        本文标题:知其所以然:在 VirtualBox 里安装 Arch Linu

        本文链接:https://www.haomeiwen.com/subject/hcfzxttx.html