Arch Linux安装到U盘上de安装教程

如果只是想单纯的安装Arch Linux
请移步Arch Linux安装教程
完善的中文Wiki)

Arch Linux简介

Arch Linux(或称Arch)是一种以轻量简洁为设计理念的Linux发行版。
Arch Linux 将简洁定义为:避免任何不必要的添加、修改和复杂增加。它提供的软件都来自原始开发者(上游),仅进行和发行版(下游)相关的最小修改。
Arch向GNU/Linux用户提供了许多新特性,包括systemd初始化系统、现代的文件系统(Ext2/3/4、Reiser、XFS、JFS、BTRFS)、LVM2/EVMS、软件磁盘阵列(软RAID)、udev支持、initcpio(附带mkinitcpio)以及最新的内核(目前是4.4)。

速度不错的国内镜像

基本系统安装

关于分区

本想使用GPT分区表,查了一些资料,为了使这个U盘在 BIOS 和 UEFI 电脑上都能用,需要创建一个BIOS boot分区,2M大小足够,位置尽量靠前。 多系统的话还要创建一个200M的 EFI System Partition(ESP)分区。但是有大神说GPT中的NTFS分区在Win7下不认(感觉Win8、Win10应该可以) 想用这个分区作为常规U盘使用就不行了,只好再回到MBR分区表。如果是移动硬盘用 GPT 应该没有问题。

所以仍然使用MBR分区,所以就要用fdisk或者cfdisk了,不能使用支持GPT的gdisk和cgdisk,4k对齐也是自动完成。
为了在安装过程中能更好认清我的分区,我先在Windows下用DiskGenius进行了分区,只可惜不支持ext4,之后再格式化一下就好。16G的U盘分区规划如下:

第一个分区 5G的ntfs分区,为了这个U盘还能进行一些拷拷文件的工作(非必须,看具体情况来吧)
第二个分区 100M的分区 /boot;
第三个分区 6G的分区,作为ArchLinux根分区;
第四个分区 4G的分区,作为 /home;

先刻录一个U盘启动盘吧

开始用ultraISO刻了几次都无法启动(原因是ultraISO不分青红皂白的写了syslinux引导进去),看来Arch真的是与众不同,于是用了烧录树莓派的Win32 Disk Image,成功。同理,在Linux下用dd命令应该也是可以的。
启动,进入Arch Linux安装界面,选择合适的版本,直接就进root了!这时可以插上你要安装的U盘。

分区

启动U盘是 /dev/sdb,目标U盘就成了 /dev/sdc。下面是在Linux显示的分区,并不是我的优盘,网上找来的,仅供参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# fdisk /dev/sdc

Disk /dev/sdc: 8022 MB, 8022982656 bytes, 15669888 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdc1 2048 1804287 901120 7 HPFS/NTFS/exFAT
/dev/sdc2 * 1804288 2009087 102400 83 Linux
/dev/sdc3 2009088 10405887 4198400 83 Linux
/dev/sdc4 10405888 15669887 2632000 83 Linux

在root下直接重新格式化为ext4
1
2
3
4
# mkfs.ntfs -f /dev/sdc1 -L f004-c
# mkfs.ext4 -b 4096 -m 0 -i 16384 -O '^has_journal' /dev/sdc2 -L f004-boot
# mkfs.ext4 -b 4096 -m 1 -i 16384 -O '^has_journal' /dev/sdc3 -L f004-a
# mkfs.ext4 -b 4096 -m 0 -i 16384 -O '^has_journal' /dev/sdc4 -L f004-b

-b 4096 是每个存储块的大小。 -m 1 是指定 root 保留空间为 1%,home 区就不留了。 -i 16384 是指定多少字节的数据设置一个 inode 节点, 增加它的值会减少 inode 的总数,占用的空间会少一些, 相应的能够存储的文件数量也减少了,这个稍微注意一下就好,一般都够用。 -O ‘^has_journal’ 是关掉文件系统日志,有点小危险。

挂载分区
1
2
3
4
5
# mount /dev/sdc3 /mnt      //没有根什么也挂不上啊
# mkdir /mnt/boot
# mount /dev/sdc2 /mnt/boot
# mkdir /mnt/home
# mount /dev/sdc4 /mnt/home

用df -h检查一下

1
2
3
4
5
6
//显示
# ext4
Filesystem Size Used Avail Use% Mounted on
/dev/sdc3 5.9G 8.1M 6.0G 1% /mnt
/dev/sdc2 96M 48K 96M 1% /mnt
/dev/sdc4 3.8G 3.8M 3.9G 1% /mnt/home

基本系统安装

只讲一些必须的步骤

  • 默认网络连接:
    dhcpcd(有线连接)
  • 网络连接:
    无线连接:

    1
    # wifi-menu

    ADSL 宽带连接:

    1
    2
    # pppoe-setup   #配置
    # systemctl start adsl #连接
pacman 软件仓库镜像服务器:

选择地理位置最为接近的镜像服务器以获得更高的下载速度。pacman优先使用位置靠前的镜像地址。将选定的镜像地址置于最前以便 pacman 使用。
注意:该配置不仅会应用到安装环境,也会应用至新系统中。

1
# nano /etc/pacman.d/mirrorlist

更新本地数据库:

1
# pacman -Syy

查看中国大陆的镜像服务器:

1
grep -A 1 'China' /etc/pacman.d/mirrorlist

选择所有的中国大陆的镜像服务器:

1
# sed -i '/Score/{/China/!{n;s/^/#/}}' /etc/pacman.d/mirrorlist

安装基础系统
1
# pacstrap -i /mnt base base-devel

提示共141个软件包,需要下载220.37M内容,安装完成后是 710.09M。

需要等待一会,休息一下

生成fstab
1
fstab: # genfstab -p -U /mnt >> /mnt/etc/fstab

然后更改fstab(系统默认一般就比较好了,不优化也行)。

下面的操作可以在 chroot 环境下运行
1
# arch-chroot /mnt
设置 hostname
1
echo 'nisuiyi' > /etc/hostname 。
设置时区
1
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
新建 /etc/locale.conf 内容为
1
2
3
LANG='en_US.UTF-8'
LC_COLLATE='C'
LC_MESSAGES='C'
编辑 /etc/locale.gen

取消 en_US.UTF-8, zh_CN.UTF-8, zh_TW.UTF-8 前面的注释,然后执行 locale-gen 命令。

更改 root 密码
1
passwd root

安装 Grub 引导系统

仍然在chroot环境中操作。编辑 /etc/mkinitcpio.conf,检查HOOKS段,让 block 参数紧挨着 udev 参数之后(早一点加载),然后

1
# mkinitcpio -p linux

生成img文件。

使用pacman安装GRUB重要!

GRUB
BIOS:
安装:

1
# pacman -S grub os-prober

格式: grub-install –recheck /dev/<目标磁盘>,无论是32位还是64位系统,都是使用–target=i386-pc参数,–no-floppy是不检查软驱

1
# grub-install --target=i386-pc --recheck --boot-directory=/boot --no-floppy /dev/sdc

生成grub:

1
2
# grub-mkconfig -o /boot/grub/grub.cfg
# grep 'set=root' /boot/grub/grub.cfg

确保:

1
# blkid /dev/sdc2

UEFI:注意,仅UEFI使用这种方式

1
2
3
# pacman -S dosfstools grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=<EFI 分区挂载点> --bootloader-id=arch_grub --recheck
# grub-mkconfig -o /boot/grub/grub.cfg

退出收工

  • 退出chroot,Ctrl + d 即可。
  • umount

    1
    2
    3
    # umount /dev/sdc3
    # umount /dev/sdc2
    # umount /dev/sdc4
  • 重启reboot

拔下启动U盘,用你的Arch Linux优盘启动吧。