将Arch Linux安装到U盘

 Aug. 15, 2011, 1:19 a.m.   11 comments    ArchLinux

一直打算在U盘上安装一个系统,一方面可以用来救急,万一主系统出了问题不至于没有电脑可用;另一方面我的笔记本电池很不给力,而使用U盘系统时相对比较省电,在不得不使用电池的时候还可以维持较长的续航时间。

虽然有很多方法可以直接将LiveCD的镜像写入U盘做成LiveUSB,但是这样在U盘里构建的Live系统并没有办法保存系统的更改,而且软件和配置也不方便定制。更重要的是没有找到适合自己使用习惯(Arch Linux)的Live系统,在尝试过几个基于Arch的Live系统感觉均不太满意之后,决定还是直接在U盘中安装系统。

其实在U盘中安装Arch Linux的过程和在硬盘上安装也基本一样,无非是安装的目的载体不同罢了,有了以前安装Arch Linux的经验,倒也不是很困难。

我使用的是一块8G的U盘,全部格式化为ext3文件系统,并挂载到/,考虑到U盘的使用寿命,就没有另外分区给swap了,再说,以现在电脑的内存,也基本用不着swap是吧。

需要注意的几点:

在进行系统配置时,务必记得修改/etc/mkinitcpio.conf,然后在HOOKS中加入对USB的支持,否则开机会无法正常从USB启动。

HOOKS="base udev autodetect pata scsi sata usb filesystems"

如果在U盘中安装了GRUB,则一定要修改/boot/grub/menu.lst,将启动参数中的(hdx,0)改为(hd0,0),因为不管U盘的位置是什么,选择从U盘启动时GRUB总是会将其识别为hd0

而且由于U盘位置的不确定性,不能再使用root=/dev/sdb2这样的启动参数,而必须改用UUID,比如root=/dev/disk/by-uuid/ef331508-87eb-4d6d-9427-ce4bcc7af812,其中的UUID可以通过blkid命令获得。

为了让系统有足够的时间加载完驱动再去寻找root,最好在参数里加入rootdelay=n,其中n是时间,单位为秒。

这是我的menu.lst文件,仅供参考:

# (0) Arch Linux
title Arch Linux
root (hd0,0)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/ef331508-87eb-4d6d-9427-ce4bcc7af812 rootfstype=ext3 ro rootdelay=8
initrd /boot/kernel26.img

# (1) Arch Linux
title Arch Linux Fallback
root (hd0,0)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/ef331508-87eb-4d6d-9427-ce4bcc7af812 rootfstype=ext3 ro rootdelay=8
initrd /boot/kernel26-fallback.img

同理,系统在挂载文件系统时也不能再通过/dev/sdx的方式了,需要修改/dev/fstab文件,将其中的

/dev/sdb1 / ext3 defaults 0 1
修改为用UUID表示的方式,比如:
UUID=ef331508-87eb-4d6d-9427-ce4bcc7af812 / ext3 defaults 0 1

这下再试着从U盘启动就可以顺利进入Arch Linux了,不过经过我一晚上的折腾,发现这样安装的系统运行起来要比LiveUSB慢得多,而且安装软件速度也很慢,也许,是USB的读写速度跟不上?


Ernest

Ernest Aug. 15, 2011, 1:28 a.m. Reply

怎么不是3.0的内核呢?

Chon

Chon Aug. 15, 2011, 1:30 a.m. Reply

安装镜像是2.6的呀,执行了pacman -Syu之后升级到3.0,然后给kernel26.img做了个链接,menu.lst就不用修改了

iROCKBUNNY

iROCKBUNNY Aug. 15, 2011, 11:20 p.m. Reply

阿杜。。。你肿么在这= =


我买糕的。

我买糕的。 Aug. 30, 2011, 10:16 p.m. Reply

哇。砖家!


介个是姓名

介个是姓名 Sept. 18, 2011, 5:56 p.m. Reply

你好,我也想建个网站,所以想问下关于你这个网站的事情。
你是从GoDaddy申请的域名吧,那你的主机/空间是怎么弄的,需要多少钱?平时网站都是怎么维护的?网站模板直接用的wordpress的?
非常感谢!

介个是姓名

介个是姓名 Sept. 18, 2011, 5:57 p.m. Reply

噢,还有,ping你网站的时候,为什么显示ipv6的地址?

Chon

Chon Sept. 18, 2011, 10:20 p.m. Reply

我的blog是可以通过ipv6访问的~~

Chon

Chon Sept. 18, 2011, 10:20 p.m. Reply

域名是从Godaddy买的,服务器是自己买的VPS,每个月$5左右吧,平时没啥好维护的吧...


Christopher Meng

Christopher Meng Oct. 24, 2012, 11:26 a.m. Reply

郁闷,昨天安装了两次,第二次启动后进入grub急救模式,找不到UUID...

Chon

Chon Oct. 24, 2012, 11:04 p.m. Reply

那应该就是UUID没写对~
p.s.Arch现在似乎更推荐用syslinux引导


Christopher Meng

Christopher Meng Oct. 26, 2012, 11:01 p.m. Reply

我上次安装GRUB提示我core.img太大不能写入磁盘开头。。。

然后我 --force 写入 /dev/sdd

估计这次写入改变了uuid。。。