可以吗?从 FireWire 设备引导 Linux

具体:http://www.verydemo.com/demo_c167_i104894.html


  获得外置驱动器是一种为较老 设备注入生机的极好方法,或者允许您在不能(或不想)改变内置硬盘驱动器的机器上运行 Linux。
  
  假设您想在双 引导系统中使用 Linux,但计算机硬盘驱动器中没有任何可用空间。一个解决方案就是使用“活动的”Linux 发行版,如 Knoppix,它 可以直接从 CD 运行。如果是偶尔使用,这种方法确实可行,但是它有许多严重的缺点:
  
  - 您仍需要一些数据文件的永久存储。如果仅使用非常小的文件, 可以使用软盘;对于中等大小的文件,USB 闪存盘可能就足够了,但是它们都不是理想的方法。
  
  - 当使用“活动的”CD 时,要安装自己的应用程序或定制现有应用程序会非常困难,甚至不可能。
  
  - 使用活动发行版会降低性能,最显著的就是当启动检测所有 设备时 ―― 但运行时也会降低性能(因为所有东西都必须从 CD 加载,这通常要比从硬盘驱动器加载慢得多)。
  
  自然,还有其他选择。例如, 可以买其他内置驱动器并在其中安装 Linux。但常见的情况是,机器中可能没有任何可用的驱动器托架(笔记本电脑更是如此,它通常仅允许一个内置硬盘驱动器)。
  
  或者,您 可以使用更大的驱动器替代当前的驱动器,并在由此得到的额外空间中安装 Linux。不过,这是一个花费时间的选择,因为它需要您在新的驱动器上重新安装现有 OS 系统,重新安装和重新配置所有应用程序及还原所有数据。
  
  一种更好的解决方案是购买外置硬盘驱动器,并在其中安装 Linux。这使您 可以不更改现有硬件和软件,仅在想使用 Linux 的时候连接外置驱动器即可。
  
   可移动驱动器选项
  可在其中安装 Linux 的移动 设备的范围包括从软盘驱动器到 USB 闪存 设备,再到 USB/FireWire 硬盘驱动器等等。
  
  虽然的确可能将 Linux 安装在小容量的 设备中,如 1.44 MB 软盘或 32 MB USB 盘,但这些通常(必然)都是专门的经过缩减的发行版,例如,用于拯救损坏的安装。
  
  不过,外置硬盘驱动器以合理的成本为通用的 Linux 发行版提供最多的灵活性。
  
  外置驱动器来自许多不同的制造商(Maxtor、Western Digital 等等), 可以有各种不同的大小。这些驱动器都包含一个外置盒,放置标准 3-1/2 英寸或 2-1/2 英寸 IDE 驱动器。这些驱动器通常都通过 USB 或 IEEE1394(FireWire)连接到计算机上。
  
  USB 有两个主要版本,1.1 和 2.0。版本 1.1 最大传输速度为 12 Mbit/s(兆比特/秒),而版本 2.0 支持最高达 480 Mbit/s 的传输速度。虽然大多数兼容 2.0 的驱动器都可向后兼容 1.1,但是一般最好避免使用 1.1,除非别无选择(因为它的速度比较慢)。
  
  FireWire 标准还定义了许多不同的可能速度,但是实际上,无论何时人们说到 FireWire,他们都是指“FireWire400”,它支持最高达 400 Mbit/s 的传输。
  
  从速度来看,在 USB 2.0 和 FireWire 之间没什么可选择的:虽然 USB 2.0 报出的速度较高,实际上因为协议不同,它们都是差不多的。如果您的计算机两者都有,或许使用 USB 更好,而不是 FireWire(后面我会讲明原因),但是如果仅有 FireWire,则当然只能选择 FireWire。为了获得最大的灵活性,从大量支持 USB 2.0 和 FireWire 的驱动器中选择一个(比如,我在本文稍后使用的驱动器)。
  
  对于没有所需端口、PCI(对于台式电脑)和 PCMCIA(对于笔记本电脑)的计算机, 可以很便宜地买到 FireWire 和 USB 2.0 卡:例如,我在本文后面使用的 PCMCIA FireWire 卡大概是用 10 GBP(不到 20 美元)买到的。
  
  为了完成本文,我购买了 5-1/4 英寸外置驱动器盒。这是非常灵活的盘盒,它不与任何驱动器一起提供, 可以装入任何标准 IDE 设备,包括 3-1/2 英寸硬盘驱动器和 5-1/4 英寸 IDE 设备,如 CD-RW/DVD-RW 驱动器。该盘盒具有 USB 2.0 和 FireWire 连接。
  
  为了将盘盒连接到我的 IBM Thinkpad T30 笔记本电脑,我还购买了 PCMCIA FireWire 卡(内置 USB 端口仅支持 USB 1.1)。
  
  盘盒和 FireWire 卡都比较便宜(分别是 50 GBP 和 10 GBP)。
  
  出于测试目的,我将盘盒与我准备的 13GB 3-1/2 英寸 IDE 驱动器连接 ―― 在实际使用时,我会购买更大容量的驱动器,这些驱动器现在也非常便宜(大约每 GB 50 GBP!)
  
   Linux 支持
  正如您可能期望的那样,Linux 对这些盘盒的支持确实很好。任何遵守“大容量存储 设备”的 SBP(Serial Bus Protocol)标准的 设备可以很容易地与 Linux 一起使用。
  
  一般来说,要启用对这些 设备的支持,内核需要支持许多内容(直接编译或通过模块)。
  
  对于 USB 和 FireWire,SBP 设备支持都通过 SCSI 仿真实现 ―― 即, 设备显示给 Linux 就好像它们是 SCSI 磁盘一样。这是在 Linux 中抽象存储 设备的一种通用方法(例如,IDE CD/DVD 驱动器也通常使用 SCSI 仿真连接)。因此,需要下列内核支持:
  - SCSI 支持
  - SCSI 仿真
  - SCSI 磁盘支持
  
  另外,根据连接方法,还会需要下列支持:
  - 对于 FireWire:
  - IEEE1394 支持
  - OHCI1394 支持
  - RAW1394 支持
  - SBP-2 支持
  - 对于 USB:
  - (主机端)USB 支持
  - OHCI 支持
  - UHCI 支持
  - USB 大容量存储支持
  
  显然,您必须完全正常支持其他硬件(显卡等等),根据您实际的硬件情况,可能还需要一些其他模块。
  
  例如,我使用 PCMCIA (cardbus) FireWire 卡,所以需要添加:
  - PCMCIA 支持
  - cardbus 支持
  
   安装
  现在我们有了外置 设备,将开始在其中安装 Linux。
  
  现在安装 Linux 的最容易的方法(当然是我的观点)是连接所有硬件(在这里,包含插入 PCMCIA FireWire 卡、将 FireWire 线缆连到 PCMCIA 卡和驱动器上、打开驱动器的电源开关);然后使用您选择的发行版的安装 CD 来 引导计算机。
  
  我选择的发行版是 Gentoo(请参阅参考资料获得相关链接),所以我使用最新的“Universal” x86 Live CD (2004.1)。其他发行版所需的步骤应该会比这里讲述的步骤多或者少。
  
  一旦已经使用安装 CD 引导,如果幸运的话,它应该已经识别了您的驱动器。驱动器应该显示为 /dev/sdX 下的磁盘,其中 X 是从“a”开始的小写字母。在我的系统中,外置驱动器被检测为 /dev/sda,但是如果您有其他 SCSI 磁盘(模拟的 SCSI 磁盘),这将发生变化;在那种情况下,它可能是 /dev/sdb 或其他字母。如果驱动器没有被自动检测,可能需要进一步的步骤 ―― 例如,您可能必须通过 引导选项来启用 FireWire 或 PCMCIA,或者可能必须手工加载一些内核模块或类似的其他项(请参阅参考资料获得故障排除指南的链接)。
  
  一旦驱动器已经被识别,就考虑安装的其余部分而言,它应该确实像内置硬盘驱动器一样运转;所以您应该 可以根据需要对其进行分区和像平常一样安装 Linux。
  
  不过,提醒一句:当决定安装 引导加载程序(通常是 GRUB 或 LILO)的位置时一定要小心 ―― 我建议不要将其安装在 Master Boot Record (MBR)(通常默认就是这样)中。而是应该安装在外置驱动器的根分区(或 引导分区,如果使用单独的 引导加载程序)中。
  
  现在我们已经在 设备中安装了 Linux,接着要 引导 Linux。从这里 可以开始有一些技巧。
  
   引导
  在讨论 引导新的驱动器之前,需要了解一些 引导加载程序理论。
  
   引导加载程序通常安装在计算机第一个硬盘的 MBR 中。调用 引导加载程序时(BIOS 自动执行 MBR 中的代码),它通常显示 可以引导的 OS 的菜单。选择一个给定 OS 引导
  
  关于此场景应该注意两点:
  - OS 选择菜单(通常)从磁盘加载。
  - 要 引导相关 OS, 引导加载程序需要从磁盘读取相关内核。
  
  由于以上操作在加载 OS 之前发生,它意味着所有磁盘读取都必须通过 BIOS 调用的方式发生。这会涉及严重的问题:即为了直接 引导磁盘,您的 BIOS 必须支持通过 FireWire 或 USB 连接的磁盘。这通常 可以看作从这些类型的磁盘 引导的一个 BIOS 选项。实际上 FireWire BIOS 支持当前很少见,但 USB 支持正在变得相当普遍。因此,如果您在相对较新的计算机中使用 USB,应该 可以直接在 Linux 中 引导驱动器。
  
  在外置驱动器的 MBR 中安装了 GRUB 之后,当通过 USB 连接时,我 可以直接 引导该驱动器。当 引导连接的磁盘时很简单地进入了 BIOS 设置程序。外置磁盘将显示为普通的硬盘驱动器:移动该磁盘使它在 引导顺序中位于内置驱动器之前。
  
  我也 可以在内置驱动器的 MBR 中安装 引导加载程序,并使用它 引导 USB 驱动器(这时它在 GRUB 中显示为 hd1 in GRUB)。如果您使用 FireWire,有可能 BIOS 不能直接 引导驱动器,将需要一些其他操作。
  
  幸运地是,因为 Linux 的灵活性,如果您不能直接 引导(使用 PCMCIA FireWire 卡,我的情况肯定是这样!),会有相当简单的解决方案。 可以从支持的 设备(如软盘驱动器、CD、USB key 或主驱动器上的微小分区)执行初始 引导步骤,然后使用外置驱动器进行其他操作。
  
   构建引导映像
   可以使用两种方法 引导
  ? 一阶段 引导
  内核 引导、安装根文件系统,并通过调用初始化脚本(通常是 /sbin/init)继续进行初始化。
  ? 两阶段(initrd) 引导
  内核 引导、安装初始 ram 磁盘(initrd),执行进一步的可定制初始化,然后安装根文件系统并继续
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值