星期六, 九月 30, 2006

[Linux] SabayonLinux LiveCD boot from ISO

Download:
SabayonLinux miniEdition X86: http://www.sabayonlinux.org/
Modified initramfs file: http://achaoge.googlepages.com/sabayon.igz
patch file: http://achaoge.googlepages.com/sabayon_allow_boot_from_iso.patch
multiple cpio unpack script: http://blog.druggo.net/public/script/unpack

修改过程:
  1. 从下载的iso文件中取出initramfs文件sabayon.igz,位于iso文件的/boot目录下面,同时还取出内核文件sabayon
  2. 解压sabayon.igz文件,这个是一个gzip压缩文件,解压之后是一个多重cpio文件(1),解压缩方式参考 http://blog.druggo.net/index.php/post/2006/08/23/unpack-initrdigz
  3. 进入解压之后的目录,打上sabayon_allow_boot_from_iso 补丁: patch -p0 < sabayon_allow_boot_from_iso.patch
  4. 重新压缩目录生成 initramfs 文件: find . | cpio -o -Hnewc | gzip -9 > ../sabayon.igz
  5. 修改Grub引导菜单文件,添加如下条目

    title Sabayon Boot From ISO
    root (hd0,0)
    kernel /boot/sabayon root=/dev/ram0 init=/linuxrc cdroot doslowusb looptype=squashfs max_loop=64 loop=/livecd.squashfs splash=silent,theme:default vga=791 CONSOLE=/dev/tty1 quiet fromhd=/dev/hda1
    initrd=/boot/sabayon.igz

    注意其中/boot/sabayon 和 /boot/sabayon.igz ,这两个分别是你从ISO中拷贝出来的内核和修改过的 initramfs 文件。 给内核传递的参数中,有一个fromhd,这不是Sabayon自带的,而是我打补丁添加上的,用来指明 ISO 文件所在的分区,其实还有一个我自己添加的参数 isoname,用来指明 ISO 文件的名字(不需扩展名),如果下载后更改过 ISO 的名字,那么需要传递这个参数。
  6. 重新启动就可以选择启动Sabayon From ISO 了.
(1) 感谢caleb@irc.debian.org/#debian-zh,是他向我指出sabayon.igz是多重cpio文件,并且帮我找到了解压方法。

0 Comments:

发表评论

<< Home