分类: LINUX
2011-03-18 18:02:43
因为最近U盘空间紧张,考虑到近 1.5G 空间都是 ubuntu 的安装文件(包括ISO,casper目录,.disk目录,vmlinuz 文件,initrd.gz 文件),所以我就想能不能不放这么多目录而仅仅有一个ISO呢,实际上用 grub4dos 是可行的。
从硬盘安装 ubuntu 根本不要这么多文件,我之前放这么多文件在根目录也是按网络上的方法来做的。用 grldr, menu.lst, ISO 文件,vmlinuz 文件,initrd.gz 文件,以及修改 boot.ini 就可以用 grub4dos 来引导安装 ubuntu 了。假设上面这些文件都放在 C 盘根目录,menu.lst 可以这样写:
title Install ubuntu
root (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu.iso
initrd /initrd.gz
boot
当然,可以在不解出vmlinuz 文件,initrd.gz 文件的情况下,grub4dos 也能成功从硬盘引导 ubuntu 安装。这里 C 盘根目录有 grldr, menu.lst, ISO 文件,这时的 menu.lst 可以写作:
title Install ubuntu
map (hd0,0)/ubuntu.iso (hd32)
map --hook
root (hd0,0)
kernel (hd32)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu/ubuntu.iso
initrd (hd32)/casper/initrd.gz
boot
里用 map 指令将 ISO 文件模拟为硬盘/光盘,在模拟磁盘中读取vmlinuz 文件,initrd.gz 文件。当控制权交给 kernel 后,计算机就从实模式过渡到保护模式。磁盘模拟也就不起作用了。
要注意的是这里 ubuntu.iso 要连续存放,在 grub 模式中可以进行测试,将它放在一个新建的分区可以保证这一点。如果内存够大,可以用 map --mem 指令直接将其映射到内存。ISO 文件不一定要放在 C 盘根目录,只要在上面 iso-scan/filename 中指定路径即可。
上面的测试基于grub4dos-0.4.3,windows XP,Dell Dimension E520, ubuntu 8.04 和 ubuntu 8.10 i386 版均测试成功。
PS: ubnutu 8.10 i386 关机和重启好像有点问题,在这台机器上不能正常运行。
grub4dos下载地址: