SDB:Installation on external hard drive

跳转至: 导航, 搜索

在某些情况下,你也许想把 openSUSE 安装到_外部硬盘_。 通常来说,这样的外部硬盘应该可以被 Linux 识别,就像其它硬盘那样。因此,这件事并不难做到。这篇文章会告诉你一些在安装过程中需要的重要的设置,以便让你的系统可以正确地从外部硬盘启动。

综述

这篇文章告诉你一个把 openSUSE 安装到外部硬盘的方法。这意味着,我们就像安装 openSUSE 到内部硬盘那样把 openSUSE 安装到外部硬盘,使你能在上面运行一个包括了分区表和主文件夹的完整系统。 如果你只是需要一个 USB 来启动系统以便应急使用,便携使用,做测试以及其它的什么, 你需要的应该是一个 U盘

注意: 本文尽力去帮助你,但是也请动动_你的脑子!_ 这可是很高级的玩意儿,如果分区或 boot loader 的设置出错,可能导致_数据丢失_,安装在内部硬盘的系统也可能_无法启动_。

硬件要求

在安装 openSUSE 到你的外部硬盘之前,你也许需要检查一下你的电脑是否支持从 USB 启动。为了确保你的电脑可以从 USB 加载 GRUB, 可以下载并安装 Super grub disk 到你的 USB。 Super grub disk 可以从这里获得。不要使用 Super grub2 disk。

非便携性

你安装好的系统将会是便携的,所以你可以把它插到任何一台电脑上。但是,需要考虑到的一点是,不同电脑之间的硬件有所不同。你的系统会为了能在你原来安装的电脑上运行而被配置好,但是可能无法在其它电脑上以这个配置运行。通常导致这个情况发生的会是不同的显卡 (nVidia 或 Radeon) 或者不同的架构 (x86 或 x86_64)。


步骤

这个步骤和通常的安装系统差不多。尽管用你最喜欢的安装方法,并把 USB 插入电脑。按照原本的步骤一直走。如果你不知道如何做,请到 安装专题 阅读可用的安装方法。

当你走到下面的步骤时,你需要再次阅读本文:

  • 分区 (Partitioning)
  • 安装概览 (Installation overview)

分区

Suggested partitioning

一开始的时候,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
Advanced partitioning program

单独的 boot 分区

强烈推荐使用单独的 boot 分区。因为当你的系统运行时,很可能出现外部硬盘没插好的情况。比如在移除别的硬件时,拔错了 USB 数据线。 当这种情况发生时,你的 root 分区会损坏。如果 /boot 分区也在那里,那么你硬盘里的系统就会无法启动了。

文件系统的选择

对于 /boot 分区,选择 ext2 是非常明智的。除非升级内核或者修改 GRUB 选项,否则不会有任何数据写入 /boot 分区。Ext2 是一个非常稳定的文件系统,并且不记录日志。

对于根分区,我们选择 ext3。Ext3 会记录日志以保护你的数据,它也是一个稳定成熟的文件系统。在外部硬盘上使用 ext4 是不明智的。Ext4 生来追求性能。而为了性能,在数据写入磁盘之前,更多的数据被保存在内存中。如果你的驱动器被拔出,这会导致严重的文件系统损坏。(编者的个人经验)

对于 /home 分区,我们选择 XFS] 。XFS 带来高性能,并且读写速度接近硬件限制。在发生故障后检查文件系统很快,而且 XFS 是非常值得信赖的。XFS 更加不能容忍硬件故障(比如坏扇区)。

创建分区

如果有必要,你可以先删除或者调整你的外部硬盘的分区,以便创建足够的空间留给 openSUSE。然后使用分区工具创建新分区,接着输入新分区的大小。

在此画面中,你可以设置文件系统类型和挂载点,如上所述。设置好之后,点击 Fstab options。这是系统启动时的 Mount 选项。

Ext-hd-inst-fstab.png
br>

Mount in /etc/fstab by 中设置按 Label 挂载,然后并给每个分区输入一个唯一的标号。按标号来挂载并非多此一举。如果你在开机时插入了另一个 USB 存储,内核可能会在识别你安装 openSUSE 的外部硬盘之前识别出它,而你安装 openSUSE 的外部硬盘会被识别成 /dev/sdc 而不是 /dev/sdb,于是挂载失败。而按照标号挂载就不会出现这个问题。

选择 No access time 选项来防止当你打开/运行文件时内核记录最后访问时间。这给了一点点性能提升,因为它减少了对硬盘的写入次数。

_可选的_:你可以选择以只读方式挂载 /boot 分区。这会给你额外的安全性,但是在你更新过程中安装新的内核之前,你不能忘记用下面的命令以读写方式重新挂载该分区(以root的身份):

$ mount -o remount,rw /boot

完成所有分区的设置之后,继续下一步,直到 "installation overview'"



Installation overview

安装概览 - 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 settings screen

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 现在,你可以删除 atafd 那行了。它们指的是内部硬盘和软盘。将 usb 那行改成 (hd0)。结果就像这样: (hd0) /dev/disk/by-id/usb-ST916082_1AS_5A188BFFFFFF-0:0

注意: _不要_直接复制粘贴这些内容。每一个硬盘都有它自己唯一的 ID,你应该在你的配置文件中找到类似的行,并相应的修改它们。

/boot/grub/menu.lst

这个是启动菜单配置文件。它告诉 GRUB 到哪里去找内核 KernelInitrd 文件。同时,内核命令也在此设置。

# 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 的方式。而且,由于你安装的系统可能不会以目前硬盘的排序进行加载,磁盘的序号会和下次启动不同。 这些设置仅在安装中适用,所以不必理睬它们。

Ext-hd-inst-grub2.png
br>

保存设置

为了使 YaST 正确读取你的设置:

  • 单击 Ok,退出设置
  • 选择 Boot loader installation
  • 选择 Boot loader installation details

现在,你应该看到一个详细列表,里面只有你的外部驱动器设置。接受并点击 OK。如果遗漏了这一步,YaST 会尝试恢复或调整你之前做的更改。

单击 OK 回到 Installation overview



最后的检查

在安装概览,你可以看到所有设置的汇总。最后检查一遍 PartitioningBooting,然后你就可以继续安装 openSUSE 了。


小结

将 openSUSE 安装到外部硬盘的关键在于引导程序的安装和设置,把握这一点,不论安装什么版本的 openSUSE 都是有效的,甚至包括其它 Linux 发行版。

参见

相关文章

外部链接