《2022年linux安装移动硬盘 .pdf》由会员分享,可在线阅读,更多相关《2022年linux安装移动硬盘 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、翻译经验不多。如有不妥,欢迎EMAIL交流。使用一个外部驱动器是一个极棒的方法,能给你的老硬件带来新生和让你在你不能(或者不想)改变内置硬盘的计算机上使用Linux 系统。假设你想使用Linux 在一个双启动环境,但是你的计算机硬盘又没有任何空余的空间。一种解决方法是使用 live 的 linux 发行版本象是Knoppix,他们这能直接从CD启动运行。 对于偶尔使用,这是一种可行的办法,但是它有若干的劣势: * 你将会仍然需要些固定文件存储。如果你只是操作少量的文件,一张 1.44MB 的磁盘就可以胜任,或者一个USB闪存棒适合中等量的文件,但是这些都不够理想。* 当使用一个LiveCD的时
2、候,最困难、最糟糕、最不可能的是安装你自己的应用程序或者定制现存的程序。* 使用 LiveCD在性能上的牺牲,在启动初所有的设备检测时尤为明显,同样发生使用中(所有的文件从CD 载入通常是比从硬盘中载入慢的多)。的确,还有其他可选方案。举例来说,你可以买额外的内置驱动器并且在此安装Linux 操作系统。但是常常,你可能没有任何空闲的扩展阜。(这特别容易发生在笔记本上,通常他们只允许一个内置硬盘。 )或者 ,你可以使用一个较大的硬盘取代当前的硬盘, 获得额外空间用于安装Linux 操作系统。然而 ,这的确是一个耗费大量时间的方案,需要你重新安装现有的操作系统在新的硬盘, 重新安装和配置你所有应用
3、程序, 和恢复所有数据。更好的解决方案是购买一个外置硬盘并安装Linux 操作系统。这样使得你在想使用Linux 系统时候不必涉及现有的硬件和软件而只是简单连接外部驱动器。可选的可移动设备可用于安装Linux 操作系统设备涵盖磁盘驱动器、USB- 闪存设备、 通过 USB/火线连接的硬盘等等。在一个小容量的设备中安装linux 是可行的,例如在一个1.44MB 的磁盘或者一个32MB 的USB棒中,他们通常(必须)为特定目的定制,采用裁减的发行版本,例如,拯救中断的安装过程。外置的硬盘在为使用一个常规目的的linux 系统提供最大的灵活性同时,带来一个合理的成本。许多不同的厂商提供许多种不同容
4、量的外置的驱动器。(Maxtor, 西西部数据 , 等等 )。这些驱动器还会包含一个外置盒子,用于固定标准的3-1/2 寸或2-1/2 寸 IDE 硬盘。然后这些驱动器经由USB 或 IEEE1394( 火线 ) 连接到计算机。USB 受到在二个主要的版本中的影响,1.1 和 2.0. 1.1 版速度为12 Mbit/ s(每秒 1Mbit) ,而2.0 版支持最高达到480 Mbit/s 的传输速度。大多数2.0 相容的驱动器也向后兼容1.1,通常建议尽量不要采用1.1 接口除非没有其他的选择(因为其低速不适应此环境。)火线标准也定义若干不同的速度, 实际上,大部分人所指的FireWire
5、,是“FireWire400”标准 ,支持最大传输速度为400 Mbit/s 。USB2.0 和火线在速度上不分伯仲: 虽然USB 2.0 有比较高的传输速度, 但是实际中因为协议的不同两者速度十分的接近。如果你的计算机拥有2 种接口 , 最好使用USB 而非火线 (理由我将后将解释), 但是如果只有火线接口,当然你就选择它了。 为了实现最大的灵活性, 可以选择众多同时支持USB 2.0 和火线的驱动器中的一种。(像我稍后将在这一个文章中使用的那个一样。 ) 对于那些没有必须的接口,PCI(对于桌面 ) 和 PCMCIA(对于笔记本型电脑) ,现在火线和USB 2.0扩展卡也并非贵不可及: 举
6、例来说, 我稍后将在文章中提及PCMCIA火线扩展卡大约为 10 英镑 .($20 美元以下 ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 为了达到本文的目的,我已经购买5-1/4 寸外置驱动器的硬盘盒。这是一件非常灵活的硬盘盒 ,并 没 提 供 驱 动 器 而 且 能 固 定 任 何 的 标 准IDE 设 备 ,包 括3-1/2 寸 驱 动 器 和 像CD-RW/DVD-RW等 5-1/4 寸 IDE 设备。硬盘盒兼有U
7、SB 2.0 和火线接口。为了把硬盘盒连接到我的IBM Thinkpad T30 笔记本电脑,我也购买了一个PCMCIA 火线转接卡。( 因为内置的USB 接口只支持USB 1.1) 硬盘盒和火线转接卡相对比较便宜。(大约分别为50 英镑和 10 英镑。 ) 测试期间 , 我把一个手边闲置的13 GB 3-1/2 寸 IDE 硬盘放进硬盘盒对于真实情况,我会买一个较大的容量驱动器, 现在另购一个硬盘相当低廉( 大约每个50 英镑 !) Linux 支持正如你所期待,linux 对这些硬盘盒支持的确非常好。任何遵从SBP (串行总线协议)标准的大储存设备在linux 中使用非常简单。大体上 ,
8、使对这些装置的支持你能够将会需要在你的核心中支持某些选项( 或直接地编译或通过模块。 ) 对于 USB和火线, SBP 装置通过SCSI模拟来实现 - 也就是说, Linux 会把他们当作SCSI硬盘来处理。 这是在Linux 世界里面使用存储设备的一个常规方法。( 举例来说, IDE CD/DVD设备通常通过SCSI 模拟来连接 )。基于以上原因,下列的选项需要被内核支持: * SCSI support * SCSI emulation * SCSI disk support 除此之外,不同连接方式需要一下的内核支持: * 针对火线 : * IEEE1394 support * OHCI13
9、94 support * RAW1394 support * SBP-2 support * 针对 USB: *(host-side) USB support * OHCI support * UHCI support * USB mass-storage support 明显地,你还必须为其他的硬件( 如显卡等等 )编译常规的支持, 而且可能需要一些额外的模块 ,取决你的具体硬件。举例来说,我正在使用PCMCIA(cardbus) 火线转接卡,因此,我还需要增加: * PCMCIA support * cardbus support 安装现在我们有很完美外置驱动器,我们将开始安装在其安装Li
10、nux 美妙之旅。目前最简单的安装linux 方法 (当然仅个人意见) , 是连接你的所有硬件;(我的情况是,插入火线转接卡,连上转接线盒驱动器,然后打开驱动器的电源) 然后从你选择的发行版安装CD上启动你的计算机。我采用的发行版是Gentoo (资源详见链接) , 因此,我用了最新的 “通用”x86 LiveCD。 (2004.1) 其他的发行版本必须的步骤大致和此相似。一旦你使用安装CD 启动 ,要藉由一点运气让他要辨认出你的驱动器。磁盘应该出现在/dev/sdX, X 是一个小写字母从“a”开始。在我的系统上,外置硬盘被当做/dev/sda, 但是名师资料总结 - - -精品资料欢迎下载
11、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 如果你有其他的SCSI 硬盘,这数字将会改变;( 或模拟了SCSI硬盘 ) 那种情况下,它可能是/dev/sdb 或一些其他的字母。如果你的驱动器不能被自动检测到, 就需要进一步采取措施- 举例来说,你可能必须打开启动选项使用火线或者PCMCIA接口 , 或你可能必须手动装载一些内核模块, 或其他一类选项。(资源详见故障发现与维修指导链接) 一旦驱动器被辨认出来,安装过程种其运作起来就像一个内置的硬盘。然后就你可以对其分
12、区并且用常规方法安装linux。有一句话我着重要提醒,小心选择何处安装boot loader(通常是GRUB和 LILO )我建议不要装到主引导记录(MBR)中( 通常是默认值) 而是装到外置驱动器的根分区( 或/boot分区,如果你单独分了一个话)。既然我们已经安装Linux 在这个设备上,我们想要从上面启动它。事情到此开始变的有点复杂了。启动在我前讨论在如何的新驱动器上面启动,我要讲解一些boot loader 的小知识。boot loader 程序通常安装在计算机的第一个硬盘的MBR 上。当 boot loader 被调用(BIOS自动地运行MBR 里的代码 ),它通常显示一份可启动操作
13、系统的菜单。以便选择一个给定的操作系统启动计算机。两件细节在这个章节中应该注意: * 操作系统选择菜单(通常)从磁盘中载入。* 为了启动有关的操作系统, boot loader 需要从磁盘中读取相关的内核。在操作系统被装载之前,以上各步骤已经执行,这意味着所有的磁盘读取在BIOS调用时。这是一个必须的前提,即,为了直接启动磁盘,你的 BIOS必须支持通过火线或USB 被连接的磁盘。 通常能在 BIOS中看到关于从这些设备上启动选项。火线 BIOS支持现在的确非常的少见,但是USB 支持正在变得相当的平常。因此,如果你正在使用一部相对比较新的计算机上的USB接口 ,应该可以直接启动驱动器进Lin
14、ux。当经由USB 连接,在安装外部的驱动器的MBR 的幼虫之后,我能够直接地启动它。当以被连接的磁盘片启动的时候,只是进入BIOS 装备公用程序。 外部的磁盘片将会出现如一个一般的硬盘 : 移动它,如此它在启动次序中的内在驱动器之前。我也能够在一个内置的硬盘的MBR 上安装一个boot loader 而且使用其启动USB 硬盘 (在GRUB 中被成为 hd1)。如果你正在使用火线, 有可能你的BIOS 将会无法直接地启动硬盘,而且你需要更多一点步骤。幸运的是,由于Linux 的多样性,这有非常容易解决,如果你不能直接地启动,( 我就是这样的情况,使用一个PCMCIA 转接卡 !) 你能运行初
15、始启动步骤,来自一个支持的设备, 像是一台软驱, CD-ROM,USB 棒,或在主硬盘上的小分区, 然后使用外部的驱动器继续其他步骤。创建一个启动镜像我们有 2 种方法启动 : * 单阶启动内核启动 , 挂载根分区文件系统, 接着调用初始化教本继续初始化( 通常是 /sbin/init) * 双阶启动(initrd)的启动内核启动, 挂载一个初始ram disk (initrd), 进一步运行定制的初始化, 然后挂载根分区文件系统继续初始化 (同样 , 通常调用 /sbin/init) 每种方法都有它自己的优点和缺点。单阶启动为了要使用一个单阶的启动,我们需要建立一个内核包含挂载一个根分区文件
16、系统所需的所名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 有驱动程序。 ( 任何其他的驱动能作为模块编译并在根分区载入时候进行常规初始化。) 如果我们正在从像软盘这样的一个非常小的装置尝试启动, 最好的方式是创建的一个正合适内核, 编译进所有挂载根外部分区系统所需驱动- 而且编译其他的作为模块。举例来说,我的内核编译进了SCSI支持,PCMCIA 支持,IEE1394 , SBP ,和其他相似的支持, 但是其他的(包括显卡支持
17、,网络设备支持,等等)当做模块编译并储存在根分区上(在外部的驱动器的 ),而不是存储在软盘上。这种方法的主要问题是需要我们给内核源代码打补丁- 那是一种最糟糕的痛苦(当新的内核发布),而真正的问题是如果补丁没有在维护,这样就不能跟上内核的变化。你可能以为如果计算机BIOS 支持 USB和火线直接启动,我们能避免发生以上的2 个问题。不幸地, 事情不是这样 :这一个方法使用BIOS在启动时调用磁盘,一旦内核开始初始化, BIOS就失去了作用,而且使用内核驱动来调用磁盘- 所以你仍然会碰到同样的问题。二阶启动内核 2.0.X 版本,添加了一个有趣的功能到内核- 使用“ initial RAM di
18、sk (初始内存磁盘) ”(or initrd )来实现二阶启动。简言之, 内核一概既往的启动;挂载一个创建在内存里迷你的根分区文件系统取代挂载“真正”的根分区系统。 无论任何命令都在这个初始环境中执行在“真正” 的根分区系统被挂载之前直到我们切换到真正的根分区文件系统并销毁初始内存磁盘(initial RAM disk) 。这点在各种环境中都非常有用,但是我们的目标仅仅是简单的利用我们的迷你环境去重新扫描 SCSI 总线,等待外部驱动器识别,然后用它切换到我们真正的根而后继续启动。使用这种方法,我们需要创建2 个文件,一个内核和一个初始镜像文件。内核仅是一个内建启动镜像(initrd )支持
19、常规内核。initrd 镜像是一个包涵我们迷你根分区系统的环路( loopback)文件系统镜像。(该镜像可以有选折地使用gzip 压缩来减小它的大小)。你能在资源章节里找到关于如何创建和定制你自己的初始镜像的更多信息。在镜像文件里,有一个linuxrc 的文件。当镜像给载入时,该文件自动运行,所以请确定其有运行权限!为了达到我们的目的,linuxrc 文件非常的简单: 列举1. initrdlinuxrc #!/bin/sh REAL_ROOT=/dev/sda1 # mount the /procfilesystem mount -t proc none /proc #for scsi-e
20、mulation (SCSI模拟)# modprobesd_mod #for pcmcia(PCNCIA卡)# modprobepcmcia_core #for FireWire (火线)# modprobe ieee1394 # modprobe ohci1394 # modprobe raw1394 # modprobe sbp2 #for USB (USB )# modprobeusbcore # modprobeohci-hcd # modprobeuhci-hcd # modprobeusb-storage 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
21、 - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - # loop rescanning the scsi bus + rerunning devfsd retries=5 i=1 until -e $REAL_ROOT do if $i -gt $retries then echo Unable to mount real root ($REAL_ROOT) - Giving up! /bin/ash exit fi echo Real root ($REAL_ROOT) not found, retryi
22、ng ($i) sleep 1 echo scsi add-single-device 0 0 0 /proc/scsi/scsi echo scsi add-single-device 1 0 0 /proc/scsi/scsi echo scsi add-single-device 2 0 0 /proc/scsi/scsi /bin/devfsd /dev -np i=$(i+1) done #umount /proc as it will be remounted by the normal init process (解除挂载 /proc 分区当它会给常规的INIT 进程重新挂载)u
23、mount /proc #now we simply exit, and the normal boot process should continue (现在我们可以退出了,常规的启动进程将会继续)exit 0 我们正在做的是载入适当的模块去支持外部驱动器: 请按需注视相应行。(我把所有需要的支持编译进内核,因此不需要模块)。然后循环, 再扫描SCSI 总线(回应一个命令到/proc虚拟文件系统下一个特别文件并调用devfsd 程序 ) 直到根分区设备出现( 我的情况是/dev/sda1 )。在我的情况,被访问的火线模拟SCSI总线是 1 0 0,但是并不影响尝试部分其他的总线- 如果你知道
24、将会使用哪一个,你可以裁减这个教本。同时, 如果你有其他的SCSI 设备(或模拟SCSI设备 ), 驱动器可能有一个不同的字母。(例如 ,/dev/sdb1) 而且如果你没有使用外置驱动器上的第一个分区, 你将会需要使用一个不同的数字。( 例如 ,/dev/sda2) 现在我们需要做的全部是复制相关的文件进initrd 镜像 .( 你能够使用mount -o loop 命令挂载未压缩的镜像)尤其, 我们需要确定我们有linuxrc 文件、 所有被用到的命令和其依赖的库。这个(未挂载的)镜像可以有选折的压缩。复制内核(bzImage) 和 initrd 镜像(initrd.gz)到磁盘。最后的步
25、是在磁盘上安装一个boot loader, 而且用下列的选项启动内核: kernelbzImage root=/dev/sda1 initrd=initrd.gz. 你现在应该可以使用磁盘来启动了:它会从软盘中载入内核,载入initrd 镜像入内存,然后从那里继续常规启动。这点以后,磁盘就可以拿开了。如果磁盘不合适( 例如,计算机没有软驱),任何设备在BIOS 能用于启动都可以使用。个人而言,我就使用一个小小的32MB 的 USB棒来达到这个目的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -