前几天给电脑加了块固态硬盘,要把系统装进固态硬盘,安装过程很流畅,下面是我的不完整安装过程。
备份旧系统数据
$ tar -cvf ws.tar ~/ws
$ tar -cvf dotfiles.tar ~/.dotfiles
$ cp ws.tar /mnt/usb
$ cp dotfiles.tar /mnt/usb
制作u盘启动盘
直接用dd写入就好了:
# dd if=archlinux-2015.11.01-dual.iso of=/dev/sdX && sync
开始安装
重启电脑让电脑从u盘启动,我用的是UEFI模式。
联网、时间
如果你用的是网线且不需要密码上网的话,它会自动联网的。有WiFi的话,用WiFi上网也是可以的,但我的无线网卡驱动现在还没有安装。
我来测一下有没有连上网:
$ ping baidu.com
自动同步时间:
# timedatectl set-ntp true
分区、格式化、挂载
我这次装系统打算用UEFI+GPT,所以分区软件用 gdisk
。
gdisk 使用方法:
- 使用
o
命令建立一个新的空 GPT 分区表。 - 使用
n
命令创建一个新的分区。- 如果指定使用第 2048 扇区之前的扇区作为起点,gdisk 会自动将分区起点移至第 2048 扇区。这是为了保证 2048 扇区对齐(由于每个扇区大小是 512 字节,这也就是能够保证兼容几乎所有 SSD NAND 擦除块大小的 1024 KiB对齐)。
- 使用
+x{M,G}
的格式指定分区大小为 x MB 或 x GB。如果指定的大小不是对齐大小(1024KiB)的整数倍,gdisk 会将其缩减到最临近的值。例如,你需要创建一个 15 GiB 的分区,你需要输入+15G
。如果想要使用所有剩余空间,直接敲下回车。 - 选择分区类型。默认值 Linux filesystem(代码 8300)在大多数情况下适用。输入
L
会打印出所有分区类型代码的列表。ESP 的代码是ef00
,swap 的代码是8200
。
- 使用
w
命令将分区表写入硬盘并退出。
我有一个固态硬盘和一个机械硬盘,打算把 /var
、/home
放到机械硬盘里。
我的分区策略如下:
- 固态硬盘(
/dev/sda
)- ESP 分区,大小 512M,挂载到
/boot
(/dev/sda1
) - 根分区,使用剩余全部空间,挂载到
/
(/dev/sda2
)
- ESP 分区,大小 512M,挂载到
- 机械硬盘(
/dev/sdb
)- var 分区,大小 32G 或 64G,挂载到
/var
(/dev/sdb1
) - swap 分区,大小 4G 或 8G,不用挂载(
/dev/sdb2
) - home 分区,使用剩余全部空间,挂载到
/home
(/dev/sdb3
)
- var 分区,大小 32G 或 64G,挂载到
格式化分区:
# mkfs.fat -F32 /dev/sda1
# mkfs.xfs /dev/sda2
# mkfs.ext4 /dev/sdb1
# mkfs.xfs /dev/sdb3
挂载分区:
# mount /dev/sda2 /mnt
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
# mkdir /mnt/var
# mount /dev/sdb1 /mnt/var
# mkdir /mnt/home
# mount /dev/sdb3 /mnt/home
格式化并启动 swap 分区:
# mkswap /dev/sdb2
# swapon /dev/sdb2
选择源,安装基本软件包
用 nano
编辑源:
# nano /etc/pacman.d/mirrorlist
把你喜欢的源前面的 #
去掉。如果你愿意,你可以只使用一个镜像并且把其他行都删掉,但为保险,还是留几个源作备用好。
然后强制更新源:
# pacman -Syy
安装基本软件包,用 pacstrap
来安装基本系统:
# pacstrap -i /mnt base base-devel
使用 -i 选项时会在实际安装前进行确认。
配置
生成 fstab:
# genfstab -U -p /mnt >> /mnt/etc/fstab
生成 fstab 之后检查一下是否正确:
# cat /mnt/etc/fstab
切换到安装好的新系统:
# arch-chroot /mnt /bin/bash
设置 locale,把你需要的 locale 前面的 #
去掉:
# nano /etc/locale.gen
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
接着执行 locale-gen
:
# locale-gen
设置系统 locale:
# echo LANG=en_US.UTF-8 > /etc/locale.conf
设置时区:
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
设置 root 密码:
# passwd
配置引导程序,我使用 systemd-boot 引导我的系统:
# bootctl install
# nano /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda2 rw quiet
# nano /boot/loader/loader.conf
timeout 2
default arch
设置主机名:
# echo xx > /etc/hostname
设置网络:
# systemctl enable [email protected]
# pacman -S iw wpa_supplicant dialog
完成安装
退出新系统、卸载分区、重启系统
# exit
# umount -R /mnt
# reboot
使用新系统
添加新用户、设置新用户密码:
# useradd -m -g users -s /bin/bash 新用户名
# passwd 新用户名
安装桌面:
# pacman -Syy
# pacman -S i3
# pacman -S xorg-server xorg-xinit
安装浏览器:
# pacman -S chromium
用新用户登陆并进入桌面:
$ startx