快捷搜索:   nginx

从USB移动硬盘上引导Portable Linux详解

  相应的内核也从2.4.20换成了现在用的2.6.21。

  中间借用的工具也从开始用的VMWare换成了现在的qemu。

  当然,不排除有优良的发行版本和更新的内核源码和工具可以不再用自己DIY,以下只是讲讲我自己动手的经历:

  首先,要有一个可分区安装linux的USB移动硬盘,理论上FLASH U盘也可以,SD/XD等闪存卡+读卡器也可以,不过FLASH芯片的速度相对还是慢了些,实用程度远没有用移动硬盘高。这里还要提到移动硬盘最好是支持USB 2.0的,用的主板最好也如此,USB1.0和1.1的速度上,实用程度也很低。理论上用IEEE 1394火线接口的移动硬盘更快,只是我没有条件试过。

  再首先,移动硬盘的USB/IDE转换板也有点讲究,我先后试过的几种移动硬盘转接板中,以那种标有IBM的小板子的移动硬盘盒最差,就算是在Windows下,也经常有硬盘离线的情况发生,一般用那种整块垫着硬盘的底板的移动硬盘盒不错,最好就是单口就能供电启动。

  其次,准备一套发行版的Linux安装光盘,当然,ISO文件也成,这里假设的当然是我们从Windows环境下开始,如果当前用的是linux,可能还不用那么麻烦。

  第三、准备一套可用的虚拟机环境,如果不在乎盗版或是你己经为之合法地付费,那么首选VMWare,这几乎是X86平台下虚拟X86平台的性能取好的虚拟机软件了,虚拟速度几乎达到1:1,如果一定要合法地使用软件,那么就用qemu吧,去哪里下载,请自己找。

  第四、把移动硬盘连接到Windows 宿主机上来,正确地认出来,这里假设当前宿主机只有一块内部硬盘,移动硬盘是唯一连接的一个移动存储设备。正确地配置虚拟机,把移动硬盘(在Windows下,第二块硬盘的设备文件是\\.\PhysicalDrive1)完全交给虚拟机作为主要硬盘,VMWare下,通过向导你可以建立一个vmdk文件,但是仅仅是指明,这个虚拟硬盘就是宿主机上的移动硬盘,这都可以在GUI下实现。在Qemu下,指明将移动硬盘作为虚拟机的命令是:

  qemu.exe -boot d -L . -m 256 -hda \\.\PhysicalDrive1 -cdrom d:\CDIMGS\FC-i386-CD1.ISO -localtime

  这里我不想太多去讨论虚拟机的使用,否则就变成虚拟机操作的经验之谈了,这里最后只提一个小提示,使用qemu的话,安装kqemu可以得到相当程度的性能提高。

  总而言之,我们建立一台使用USB硬盘作为主硬盘的虚拟机,并从光盘上引导或是从光盘镜像文件上引导它,顺利地安装了一套运行在虚拟机上的发行版本的Linux,这里又仅以FC 5 Linux为实例了,其实发行版本其实也大同小异。

  第五、确保安装后运行在虚拟机中的Linux系统有完整的内核开发环境和内核源代码。这里又要扯到虚拟机的使用上去了,不管用什么办法,可能你需要安装开发环境、下载内核源代码的最近版本,可以正确地配置虚拟机直接上网下载、也可能利用宿主机下载后用FTP、Samba共享的办法甚至做成光盘镜像来让虚拟机终于可以配置和编译内核。

  第六、开始配置新的内核,其中,重要的是要让这个内核支持USB移动存储驱动,而且还不能是内置在内核中,而是编译成内核驱动模块,由于存储驱动模块化,而又是引导时段需要的,因此,这个内核还必须支持引导过程的内存镜像盘(initrd)。于是,需要配置的内核部分包括:

  至少必须的文件系统支持:ext3、ext2,反正都有initrd了,就配成模块方式。

  至少必须支持的SCSI驱动:scsi、scsi-sd,这两个被VMWare 的虚拟Buslogic SCSI控制器和USB Storage驱动所依赖,配置成模块方式:

  到少必须支持的USB驱动:usb支持、usb-storage即usb存储驱动。还有必须的uhci_hcd(基于intel系列芯片及VIA系列的的USB 1.0/1.1总线控制器)、ohci_hcd(基于AMD、nForce、ALI等兼容芯片的USB 1.0/1.1总线控制器)、ehci_hcd(扩展的USB 2.0总线控制器)。都配置模块方式。

  至少必须支持的块设备:LoopBack Device Support,模块方式/内核方式都可以,2.4版本的内核使用Loop设备的方式来存放initrd镜像。 Ram disk支持,这个是必须,并且要编译在内核里。还有最重要的是Initrd的支持,需要编译到内核中,2.6的内核配置中,intitrd - Initial RAM filesystem and RAM disk (initramfs/initrd) support放在内核的General setup之下。

  其它的部分,都可以按需定制。配置了内核之后,不外就是编译内核与内核模块、安装复制内核模块、安装新的内核。这些和通常的定制linux内核大同小异。把新的内核安装到当前系统上,并且加入到GRUB的选项中(这里又是假设了,假设当前使用的是GRUB作为Boot loader,至于LILO、syslinux这些,也是大同小异)。

 [2] [3] [4] [5] 下一页

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论