一直打算在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的读写速度跟不上?
Leave a Comment