SDB:Installation on external hard drive
目录
综述
这篇文章告诉你一个把 openSUSE 安装到外部硬盘的方法。这意味着,我们就像安装 openSUSE 到内部硬盘那样把 openSUSE 安装到外部硬盘,使你能在上面运行一个包括了分区表和主文件夹的完整系统。 如果你只是需要一个 USB 来启动系统以便应急使用,便携使用,做测试以及其它的什么, 你需要的应该是一个 U盘。
硬件要求
在安装 openSUSE 到你的外部硬盘之前,你也许需要检查一下你的电脑是否支持从 USB 启动。为了确保你的电脑可以从 USB 加载 GRUB, 可以下载并安装 Super grub disk 到你的 USB。 Super grub disk 可以从这里获得。不要使用 Super grub2 disk。
非便携性
你安装好的系统将会是便携的,所以你可以把它插到任何一台电脑上。但是,需要考虑到的一点是,不同电脑之间的硬件有所不同。你的系统会为了能在你原来安装的电脑上运行而被配置好,但是可能无法在其它电脑上以这个配置运行。通常导致这个情况发生的会是不同的显卡 (nVidia 或 Radeon) 或者不同的架构 (x86 或 x86_64)。
步骤
这个步骤和通常的安装系统差不多。尽管用你最喜欢的安装方法,并把 USB 插入电脑。按照原本的步骤一直走。如果你不知道如何做,请到 安装专题 阅读可用的安装方法。
当你走到下面的步骤时,你需要再次阅读本文:
- 分区 (Partitioning)
- 安装概览 (Installation overview)
分区
一开始的时候,YaST 会建议在你的第一个硬盘 (/dev/sda) 进行分区。无视这个建议,点击 Create partition,在下一步选择 Costum partitioning。
现在,你进入了高级分区程序,在本例中,我们将会分出一个单独的 /boot 分区,一个 swap 分区和一个包含 (/) 和 /home 的扩展分区。
分区方案
本例将会创建如下的分区:
Partition | Size | Filesystem | Mount point | Remarks |
---|---|---|---|---|
/dev/sdb1 | 100 MB | ext2 | /boot | 只读挂载 |
/dev/sdb2 | 2 GB | swap | swap | |
/dev/sdb3 | Max | N/A | N/A | 扩展分区,包含其它分区 |
/dev/sdb5 | 15 GB | ext3 | / (root) | 逻辑分区计数从5开始 |
/dev/sdb6 | Max | XFS | /home | 剩下的空间分给 /home |
单独的 boot 分区
强烈推荐使用单独的 boot 分区。因为当你的系统运行时,很可能出现外部硬盘没插好的情况。比如在移除别的硬件时,拔错了 USB 数据线。 当这种情况发生时,你的 root 分区会损坏。如果 /boot 分区也在那里,那么你硬盘里的系统就会无法启动了。
文件系统的选择
对于 /boot 分区,选择 ext2 是非常明智的。除非升级内核或者修改 GRUB 选项,否则不会有任何数据写入 /boot 分区。Ext2 是一个非常稳定的文件系统,并且不记录日志。
对于根分区,我们选择 ext3。Ext3 会记录日志以保护你的数据,它也是一个稳定成熟的文件系统。在外部硬盘上使用 ext4 是不明智的。Ext4 生来追求性能。而为了性能,在数据写入磁盘之前,更多的数据被保存在内存中。如果你的驱动器被拔出,这会导致严重的文件系统损坏。(编者的个人经验)
对于 /home 分区,我们选择 XFS] 。XFS 带来高性能,并且读写速度接近硬件限制。在发生故障后检查文件系统很快,而且 XFS 是非常值得信赖的。XFS 更加不能容忍硬件故障(比如坏扇区)。
安装概览 - GRUB 设置
到了这一步的时候,有必要修改 Boot loader settings。默认情况下,YaST 想要把 GRUB 安装到你第一个硬盘的 MBR。在这个步骤里,我们要确保 GRUB 正确地安装到外部硬盘。
术语
GRUB 有自己表示硬盘和分区数的方法。GRUB 从0开始计算。第一个硬盘指的是加载 GRUB 的硬盘。所以,如果我们安装 GRUB 到外部硬盘,它应该是第一个(0)硬盘。 GRUB 用下面的标号来指示设备:
- (hdX) 表示硬盘
- (hdX,X) 表示硬盘上的分区
GRUB 标号 | 代表的意思 |
---|---|
(hd0) | 主硬盘 |
(hd0,0) | 主硬盘的第一个分区 |
(hd1,0) | 第二个硬盘的第一个分区 |
(hd0,1) | 主硬盘的第二个分区 |
GRUB 设置
- 在 installation overview 中选择 booting
- 下一步选择 Other...
- 选择 Edit configuration files
现在,我们要手动修改配置文件。
/boot/grub/device.map
这个文件说明磁盘启动顺序。这个文件的内容应该像默认的这样子: (hd0) /dev/disk/by-id/ata-TOSHIBA_MK1652GSX_78CDC02UT (hd1) /dev/disk/by-id/usb-ST916082_1AS_5A188BFFFFFF-0:0 (fd0) /dev/fd0 现在,你可以删除 ata 和 fd 那行了。它们指的是内部硬盘和软盘。将 usb 那行改成 (hd0)。结果就像这样: (hd0) /dev/disk/by-id/usb-ST916082_1AS_5A188BFFFFFF-0:0
这个是启动菜单配置文件。它告诉 GRUB 到哪里去找内核 Kernel 与 Initrd 文件。同时,内核命令也在此设置。
# Modified by YaST2. Last modification on Thu Mar 10 17:25:58 CET 2011 # THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader # Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader default 0 timeout 8 gfxmenu (hd0,0)/message ##YaST - activate ###Don't change this comment - YaST2 identifier: Original name: linux### title Desktop -- openSUSE 11.4 - 2.6.37.1-1.2 root (hd0,0) kernel /vmlinuz-2.6.37.1-1.2-desktop root=/dev/disk/by-label/SUSE resume=/dev/disk/by-id/usb-ST916082_1AS_5A188BFFFFFF-0:0-part2 splash=silent quiet showopts vga=ask initrd /initrd-2.6.37.1-1.2-desktop ###Don't change this comment - YaST2 identifier: Original name: failsafe### title Failsafe -- openSUSE 11.4 - 2.6.37.1-1.2 root (hd0,0) kernel /vmlinuz-2.6.37.1-1.2-desktop root=/dev/disk/by-label/SUSE showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=ask initrd /initrd-2.6.37.1-1.2-desktop
请注意 (hdX,X) 项,它们应设置为 (hd0,X),0 表示第一个硬盘。如上文所述,GRUB 所指的第一个硬盘为加载它的硬盘。把 X 修改为 /boot 所在的分区号。如果你完全遵循上面的分区例子,那么 X=0,其中0代表第一个分区。如果 /boot 所在分区为第二个分区(例如 /dev/sdb2),X 应为1,第三分区的 X 应为2,等等。
/etc/grub.conf
不要理睬这个文件。这个文件设置 GRUB 写入 MBR 的方式。而且,由于你安装的系统可能不会以目前硬盘的排序进行加载,磁盘的序号会和下次启动不同。 这些设置仅在安装中适用,所以不必理睬它们。
最后的检查
在安装概览,你可以看到所有设置的汇总。最后检查一遍 Partitioning 和Booting,然后你就可以继续安装 openSUSE 了。
小结
将 openSUSE 安装到外部硬盘的关键在于引导程序的安装和设置,把握这一点,不论安装什么版本的 openSUSE 都是有效的,甚至包括其它 Linux 发行版。