前几天把ArchLinux滚挂,自己水平又低,不知道如何修复,只能重装,这里记一下重装的步骤,以备后用。
博客里面部分内容摘抄自ArchLinux的官方wiki,详情情况可以参考wiki页面:https://wiki.archlinux.org/index.php/Main_page
wiki内容非常详尽,我们常遇到的问题几乎都可以查到;但正因为其太详细,对于安装过程中有很多我们不需要步骤,这才想把自己的安装过程简单记一下。由于自己是在实体机上安装的,不好截图,下面仅有的几张图大都是从网络上找的,在此表示感谢。
发现一篇比较新的虚拟机上安装ArchLinux的笔记:http://www.cnblogs.com/mad/p/3280041.html
要安装ArchLinux当然首先需要准备好安装介质,ISO镜像可以在这里下载:https://archlinux.org/download/
ArchLinux的ISO 镜像文件仅有一个,但同时支持32位与64位构架。下载完成后需要把镜像烧录到U盘上,详细内容可以参考这里:https://wiki.archlinux.org/index.php/USB_Flash_Installation_Media_(简体中文),由于我是在windows 7系统上操作的,因此用的是USBWriter工具,USBWriter使用很简单,运行起来后选择好iso镜像和要写入的U盘,点击“写入”按钮并等待进度条走完就可以使用了。截图如下:
USBWriter的说明文档及下载地址:http://sourceforge.net/p/usbwriter/wiki/Documentation/
下载:http://sourceforge.net/projects/usbwriter/files/latest/download
将制作好的启动U盘插入USB接口,通电后选择从USB启动就可以引导计算机了,启动之后的界面如下:
上面这张图片是从网上找的,与现在的启动界面还是有点差别的,就是上面图片上的启动项少一项,在“Boot Arch Linux (i686)”上面还有一项是“Boot Arch Linux (x86_64)”,表示安装64位的linux系统,我安装的就是这一项。选择“Boot Arch Linux (x86_64)”并回车就会进入安装程序(命令行模式)。
我家里用的是无线路由器,首先需要确定计算机的无线网络接口名:
上面的图片是从官方WIKI上截取的,其中的 wlp3s0就是网络接口名;实际上我的计算机输出的网络接口名不是wlp3s0而是wlp5s0,下面的命令都将用这个接口名;确定了网络接口名后,现在用 netctl 的 wifi-menu 来连接网络
# wifi-menu wlp5s0程序在一番搜索之后会给出一个列表让我们选择要连接的Wifi,选择后如果有密码会让我们提供密码,然后就可以连接上了。
我用的是MBR分区类型,分区工具采用的是cfdisk,cfdisk使用起来也很简单,不用过多记述;不过在使用前最好确定一下自己要安装的盘挂载在什么地方,可以使用lsblk命令查看;我安装的时候目标盘挂载在/dev/sdb,因此运行时需要指定一下:
cfdisk /dev/sdb运行起来后其界面大体如下(同样是从网络上找的图):
【New】就是创建一新分区,然后输入分区大小就可以完成分区创建操作,完成所有的分区后需要选中【Write】然后回车,这样才会把分区信息写入MBR中,否则分区无效。
至于分区方案我也不太熟,从网络上查查就可以了,我的分区方案:
/ 20G
/boot 200M
/home 剩余空间(约120G)
要安装系统仅仅分区是不够的,还需要 mkfs 将分区格式化为指定的文件系统;在格式化分区之间一定要确定自己要格式化的分区是正确的,在这里可以使用 lsblk 命令查看当前的分区状态。由于我的电脑上还装有Win7,因此前面创建的三个分区分别是/dev/sdb7、/dev/sdb8和/dev/sdb9,格式化命令如下:
# mkfs.ext4 /dev/sdb7 # mkfs.ext4 /dev/sda8 # mkfs.ext4 /dev/sda9我没有创建Swap分区,若您分了一个 swap 区,也不要忘了格式化并启用它:
# mkswap /dev/sdaX # swapon /dev/sdaX
记下将要安装 Arch 的磁盘及分区。每个分区都能通过一个数字后缀来辨认。比如,sda1 即指某一磁盘的第一分区,而 sda 则表示整个磁盘。lsblk命令可以显示当前分区布局:
# lsblk -f
注意要按照顺序挂载,先挂载根分区到 /mnt (您实际所要挂载的分区名当然可能会不同):
# mount /dev/sdb7 /mnt
接下来挂载/home和/boot分区(如果还有其它分区,也类似):
# mkdir /mnt/boot # mount /dev/sdb8 /mnt/boot # mkdir /mnt/home # mount /dev/sdb9 /mnt/home
安装前需要编辑 /etc/pacman.d/mirrorlist, 将偏好的镜像放到最前面。mirrorlist 文件也会被 pacstrap 复制到新系统,所以最好现在就设置。
#vi /etc/pacman.d/mirrorlist
我在mirrorlist文件的前面添加了以下几个国内源:
Server = http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch Server = http://mirrors.sohu.com/archlinux/$repo/os/$arch Server = http://debian.cn99.com/archlinux/$repo/os/$arch保存退出后,执行pacman -Syy刷新一下;官方WIKI上这样一句话:一旦更改了镜像列表,请务必记得使用 pacman -Syy 强制刷新。这绝对是一个良好的习惯,它可以避免一些可能的麻烦。因此为了一些可能的麻烦,我们还是更新一下吧!
使用 pacstrap 来安装基本系统。如果不想手动选择安装哪个包,使用 -i 选项忽略即可;如果想编译来自 AUR 的软件包,又或是用得到 ABS ,应该也装上 base-devel 软件包:
# pacstrap -i /mnt base base-devel
用以下命令生成 fstab. 之所以用 UUID 是因为它们能唯一且独立地标识,如果想用卷标,用 -L 代替 -U 即可:
# genfstab -U -p /mnt >> /mnt/etc/fstab # vi /mnt/etc/fstab警告: 强烈建议在生成 fstab 后检查一下是否正确。若在运行 genfstab 或是之后发生错误,请勿再次运行 genfstab, 而是直接手动编辑 fstab 文件。
通过下面的命令 chroot 到新系统:
# arch-chroot /mnt /bin/bash从现在开始,我们会通过编辑文件以配置系统。所以若文件不存在,手动创建,或者您也可以加以编辑已存在的文件,以修改默认参数。
Wiki又一次劝我们老实点:充分理解并老实按一步一步来,是保证系统配置成功的关键。
glibc, 以及其他本地化的程序与库若要本地化文本,都依赖 locales, 后者明确规定地域、货币、时区日期的格式、字符排列方式和其他本地化标准等等。于是我们需要编辑两个文件:locale.gen 与 locale.conf.
/etc/locale.gen是一个仅包含注释文档的文本文件。指定您需要的本地化类型,只需移除对应行前面的注释符号(#)即可,请选择帶UTF-8的项,使用 vi 打开并编辑/etc/locale.gen文件,解开以下三项的注释:
en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 zh_TW.UTF-8 UTF-8
实际操作中,除了上面三行内容外,其它内容都被我删除了。接着执行locale-gen以生成locale讯息:
# locale-gen创建 locale.conf 并提交您的本地化选项:
# echo LANG=en_US.UTF-8 > /etc/locale.conf
可用的时区全集中在 /usr/share/Zone/SubZone 目录中,所以要查看可用时区,直接浏览 /usr/share/zhoninfo 即可。将 /etc/localtime 软链接到 /usr/share/zoneinfo/Zone/SubZone,这里采用上海的时区:
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
在计算机所有操作系统上统一硬件时间模式,否则可能会发生冲突。可以用下面命令自动生成 /etc/adjtime:
# hwclock --systohc --utc提示: 硬件时钟使用 UTC,并不代表软件时间也是 UTC.
设置计算机名:
# echo zyh-pc > /etc/hostname
再次配置网络,但这次是为刚安装的新系统而配置;这里我仍然只考虑无线网络。
安装 iw 和 wpa_supplicant ,因为需要它们来连接无线网络:
# pacman -S iw wpa_supplicant安装dialog,因为wifi-menu需要用到它:
# pacman -S dialog计算机重启就可以使用 wifi-menu interface_name 来连网,interface_name 是您的无线网络接口名,比如我的就是 wifi-menu wlp5s0。
用 passwd 命令设置一个 root 密码:
# passwd然后输入密码、再次输入确认后就可以了。
我的主板是BIOS主板,这里采用的 bootloader 是Grub;安装 grub 包,并执行 grub-install 已安装到 MBR:
# pacman -S grub # grub-install --target=i386-pc --recheck /dev/sdb注意:须根据实际分区自行调整 /dev/sdb, 切勿在块设备后附加数字,比如 /dev/sdb1 就不对。
由于我的硬盘上还有另外一个操作系统windows 7,为了检测到该系统并写到grub启动项中,还需要做下面的操作。
# pacman -S os-prober # grub-mkconfig -o /boot/grub/grub.cfg
离开 chroot 环境并重启操作系统
# exit # reboot提示: 确保同时移除安装媒介,并还原 BIOS 中的启动选项,否则可能会启动后又会回到安装界面。
桌面环境我用的是XFCE4,在安装之前需要装几个其它的东西。
# pacman -S xorg-server xorg-server-utils xorg-xinit
我的笔记本是Intel的集成显卡和英伟达的独立显卡,这地方没弄清楚怎么回事,就安装了两个驱动;这里有一些相关描述:https://wiki.archlinux.org/index.php/NVIDIA_(简体中文)
# pacman -S xf86-video-intel # pacman -S xf86-video-nouveau
LXDM是个桌面管理器,用来登录系统及启动XFCE桌面。
# pacman -S lxdm # systemctl enable lxdm.service
# pacman -S xfce4
经过以上步骤,可以通过下面的命令来启动XFCE4了:
startxfce4