fedora利用vmlinuz和initrd制作linux启动u盘

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

首先,本文不是关于使用Fedora写入U盘工具或其他工具来实现从U盘启动Fedora 14 LiveCD的方法。本文介绍的是使用Grub引导程序的方法来启动Fedora 14 LiveCD。我之前在元宵节中午经过几天的尝试,终于成功实现了这一方法。在此之前,我在网上搜索了很多资料,大多数介绍的是从硬盘启动安装的方法,有一些介绍了从U盘启动安装的资料,但多数是使用工具进行刻录制作,与我的初衷不符。因为我已经在U盘上使用了晨枫U盘维护工具制作了WinPE启动盘,并添加了Ubuntu 10.10、Linux Mint、Puppy、CDlinux和奶瓶等系统。我不想为了这个而毁掉之前的工作,所以对于其他一些资料,我无法理解其中的命令和复杂的操作步骤,期间我曾考虑放弃。

直到今天中午,在论坛上我找到了下面这篇文章:”精悍的Fedora-14-x8664-Live硬盘系统是怎么炼成的”。经过多次尝试和测试,我发现制作精悍的Fedora 14 Live硬盘系统的方法如下:首先,将Fedora-14-x8664-Live-Desktop.iso中的整个LiveOS文件夹及其内容提取到一个FAT32格式的根目录下,并将Fedora-14-x86_64-Live-Desktop.iso中的isolinux文件夹中的initrd0.img和vmlinuz0提取到目标分区的LiveOS文件夹内。然后,在启动程序中添加以下菜单项:

Chenggong on /dev/sda12

title Fedora LiveCD硬盘安装
root (hd0,11)
kernel (hd0,11)/LiveOS/vmlinuz0 root=live:/dev/sda12 liveimg quiet rhgb rootfstype=auto vga=791
initrd (hd0,11)/LiveOS/initrd0.img
boot

重启后选择这个引导菜单项,就可以进入Fedora 14 LiveCD,并进行安装。这种方法相比之前的方法更加方便。只要以后都采用这种方式,只需将文件提取到相应位置,就不需要再进行引导菜单的调整了。在此再次强调,只将LiveOS文件夹放在根目录下。

上面这篇文章是我在论坛上找到的,当时忘了记下作者的名字,在此向作者表示歉意,并真诚地表示感谢。

对于上述操作的改进,有两个方面:

  1. 将LiveOS文件夹复制到U盘的根目录下,然后将isolinux文件夹中的vmlinuz0和initrd0.img复制到U盘的根目录和LiveOS文件夹下。
  2. 编辑menu.gz文件(因为我使用的是晨枫制作的启动盘,所以文件名是menu.gz,而不是menu.lst):

title [05] Fedora LiveCD安装
find –set-root /LiveOS/vmlinuz0
uuid F464-9EA0
kernel (hd0,0)/LiveOS/vmlinuz0 root=live:UUID=F464-9EA0 liveimg quiet rhgb rootfstype=auto vga=791
initrd (hd0,0)/LiveOS/initrd0.img

这是最终的menu.gz文件,与上述方法相比,唯一的区别是find –set-root /liveos/vmlinuz0与root (hd0,0)之间的差异。前者是相对路径,动态的,而后者是固定的。使用root=live:/dev/sda12的方式可以正常启动到桌面,但有一个缺点,如果我的硬盘有两个或更多,或者插入了多个U盘,就会出现”no root device found”的错误。因此,我使用了UUID,这样无论在什么环境下,都能正确找到U盘并成功启动到桌面。

关于如何获取U盘的UUID,每个人可能有不同的方法。我是先使用U盘启动到Ubuntu(因为我的U盘上有这个系统),然后在终端中输入”ls -l /dev/disk/by-uuid”命令,得到了我想要的UUID。然后,我进入Linux Mint并输入相同的命令进行验证,得到的UUID是相同的。

如果不按照上述内容编写menu.gz文件,大家也可以采用以下方法,这是我最初使用的方法:

其他内容都相同,只是不包括menu.gz的内容。

title [05] Fedora LiveCD安装
root (hd0,0)
kernel (hd0,0)/LiveOS/vmlinuz0 root=live:/dev/sdb1 liveimg quiet rhgb rootfstype=auto vga=791
initrd (hd0,0)/LiveOS/initrd0.img

其中,root=live:/dev/sdb1中的sdb1是我的U盘,如果你有两个硬盘,那么可能是sdc1,三个硬盘可能是sdd1,以此类推。这种方法的缺点是,如果无法启动,就需要进行更改。

至于每行中的(hd0,0)这个问题,我没有时间去研究了,除了第一行需要这个之外,第二行和第三行是否需要我没有再进行测试。毕竟,我是一个新手,不懂原理,只能一个一个地尝试。

最后,附上一张图片,请大家务必注意目录结构,不要搞错,因为我曾经因为这个走了很多弯路。

最后,祝大家元宵节快乐!

赞(0)