Arch Linux安装准备工作记录

我们使用Ubuntu,总是抱着和Windows进行比较的想法,自然会得到Ubuntu各方面不如Windows的感觉。而我们使用Windows的时候,从来不会去细细思考各种软件互相工作在一起构成一个用户友好的操作系统是多么不容易,更何况GNU/Linux完全自由,由无数个程序员一起构造出的现在这样一个易用的操作系统。我选择了个人定制度高的Arch Linux,并计划将以后自己的Linux环境转移过来,自己选取应用定制自己的Linux。

背景

初中第一次接触Linux体验的是当时买电脑预装的国产发行版红旗Linux,还没怎么弄懂就被我爸装好了XP。再后来参加NOIP用过短短的几次NOI Linux,应该是基于Debian改的,但也只是为了熟悉比赛时的Lazarus环境。自大学以来,一直使用的都是Ubuntu。我和fz经常一起诟病Ubuntu的种种缺点,认为Ubuntu兼容性太差,是对主流操作系统拙劣的模仿,使用各种软件强行拼凑了一个看上去还不错的UI环境。而我也是尽力避免使用Linux。最近想来,或许我们从一开始就误解了Linux,Linux是一个自由的操作系统,我们使用Ubuntu,总是抱着和Windows进行比较的想法,自然会得到Ubuntu各方面不如Windows的感觉。而我们使用Windows的时候,从来不会去细细思考各种软件互相工作在一起构成一个用户友好的操作系统是多么不容易,更何况GNU/Linux完全自由,由无数个程序员一起构造出的现在这样一个易用的操作系统。我选择了个人定制度高的Arch Linux,并计划将以后自己的Linux环境转移过来,自己选取应用定制自己的Linux。

Arch Linux的安装

引导

我使用的是Arch Linux 2017.02.01版本的iso文件,下载自ustc镜像,现在最新版是2017.03.01,当然没有什么区别,实际上Arch Linux的安装过程必须能访问网络,因为安装时连core都是从网上下载的。

事实上,ArchLinux的wiki做的非常详尽,其安装教程在此:https://wiki.archlinux.org/index.php/Installation_guide

我的安装机器是一台旧笔记本,里面装有一个XP,我没有将XP舍弃,而是清出了200G的硬盘准备用于Arch。我手头u盘不能正常进行引导,便使用了Grub4Dos进行硬盘引导iso文件,正好官方wiki对我这种情况没有太清晰的说明,将过程记录以下。

首先下载Grub4Dos(http://grub4dos.chenall.net/),此处请知悉网上流传最多Grub4Dos 0.4.4版本不能支持ext4文件格式,如分区时使用ext4,请务必下载新的0.4.6版本。下载解压后将其中的grldr,grub.exe和sample目录下的menu.lst拷贝至C盘根目录下。并修改启动项,添加c:\grldr="Grub4DOS"。

注:Grub4DOS只是我记录给这台电脑在原本就有XP时的解决方案,如使用Win7,Win10,请针对自己的情况在Wiki上查询。当然最简单的方法无疑是将iso写入USB设备,通过USB启动。

此时,将archlinux-2017.02.01-dual.iso放在c盘根目录,并将其中的arch/boot/i686(64位是x86_64)/下的archiso.img和vmlinuz也解压出来放在c盘根目录。这两个文件,vmlinuz是可引导的内核,archiso请参阅https://wiki.archlinux.org/index.php/Archiso,这里archiso是极其精简的一组bash脚本。

现在可以在menu.lst新建一个入口:

title Install Arch Linux
root (hd0,0)        #(hdN,M)表示第N块硬盘的第M个分区
kernel /vmlinuz     archisolabel=ARCH-201702
initrd /archiso.img

这段代码原理就是告诉grub要引导的文件是c盘下的vmlinuz,用vmlinuz打开label为ARCH-201702的光盘,并启动archiso。
重启后在grub4dos界面选择Install ArchLinux,vmlinuz会因为找不到光盘而停下来,并初始化archiso,给出一个root用户的提示符。

所以这里我们需要手动将iso文件虚拟成光驱加载,命令如下:

mkdir /iso
mount -r -t ntfs /dev/sda1 /iso  #将C盘挂在到新建的文件夹
modprobe loop    //激活linux内核的循环设备
losetup /dev/loop6 /iso/archlinux-20170201-dual.iso  #将iso虚拟为loop设备
ln -s /dev/loop6 /dev/disk/by-label/ARCH-201702#/将loop设备软链接为label为ARCH-201702的光盘
exit

代码原理如备注所示,在完成虚拟光盘后exit,便完成了引导,进入系统。

注:如果你的C盘是Fat32分区,讲ntfs改为vfat

网络配置

如前所述,ArchLinux的安装过程必须有网络,如果你使用有线网络,直接将网线插入,守护进程 dhcpcd 已被默认启用来探测有线设备, 并会尝试连接。如果使用无线网络,请注意你所连接的无线网络的加密方式,如果使用WPA,请使用iw进行连接,如果是WPA2,请使用wpa_supplicant进行配置。参考https://wiki.archlinux.org/index.php/Wireless_network_configuration

这里由于我实验室使用的无线网络加密方式为WPA2,这里顺便记录一下wpa_supplicant的配置。

首先,使用iw dev命令查看无线网卡的设备号:

root@archiso / # iw dev
phy#0
        Interface wlp3s0
            ifindex 3
            wdev 0x1
            addr 08:ed:b9:3e:0c:cf
            type managed
            txpower 3.00 dBm

Interface后就是设备号,这时使用wpa_supplicant进行连接,语法如下:

wpa_supplicant -B -i 设备号 -c <(wpa_passphrase 网络名 密码)>

具体参数意义及将网络名密码保存方便下次连接的方法请参阅https://wiki.archlinux.org/index.php/WPA_supplicant
然后通知dhcpcd监测无线网卡

dhcpcd 设备号

如正确配置即可上网。

同时,建议安装系统前更新系统时间,使用

timedatectl set-ntp true

请注意Windows使用localtime,而Linux使用UTC时间,双系统会导致时间相差当前地区至UTC时间差,如果进行统一请参阅https://wiki.archlinux.org/index.php/Time

分区及安装

简单易操作,请参阅https://wiki.archlinux.org/index.php/Installation_guide

grub4dos引导arch

若/boot挂载至独立分区

title ArchLinux
root (hd0,5)     # /boot所在分区
kernel /vmlinuz-linux root=/dev/sda7 ro vga=791 init=/usr/lib/systemd/systemd  # /所在分区
initrd /initramfs-linux.img
boot

若/boot没有独立挂载

title ArchLinux
root (hd0,5)    # /所在分区
kernel /boot/vmlinuz-linux root=/dev/sda6 ro vga=791 init=/usr/lib/systemd/systemd
initrd /boot/initramfs-linux.img
boot

我安装的一些包


title: Arch Linux安装准备工作记录
time: 2017-03-08 18:45
tags: Linux,Arch
category: Study

标签: Linux Arch

发表评论: