Grub4Dos仿真ISO启动CDlinux省可用内存的方法


测试环境,Windows 7 64bit,VirtualBox 3.8.12,虚拟机512MB内存!

测试一:
把CDlinux.iso中boot/CDlinux/下的bzImage和initrd文件解出来,占用7MB不到的磁盘空间,然后在Grub4Dos的menu.lst中启动项写法:
find --set-root /boot/CDlinux/bzImage
kernel /boot/CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR=/boot CDL_IMG=CDlinux.iso
initrd /boot/CDlinux/initrd
结果:

可用内存503MB,原因是bzImage和initrd文件占用了8MB不到的空间!

测试二:
Grub4Dos的menu.lst中启动项写法
title GNU/CDlinux (ISO emulation)
  find --set-root /boot/CDlinux.iso
  map --mem /boot/CDlinux.iso (hd32)
  map --hook
  kernel (hd32)/CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR=/boot CDL_IMG=CDlinux.iso
  initrd (hd32)/CDlinux/initrd
结果:可用内存381MB,原因是CDlinux.iso文件整个加载进内存,占用了122MB!
分析:
CDlinux与其它linux一样,启动只需要通过bzImage和initrd两个文件加载到内存,便可以加载整个系统, CDL_IMG=CDlinux.iso的意思只是把ISO当作一个存储镜像,镜像的启动扇区是根本不用去访问到的!
所以,是不用在grub4dos中用map把整个CDlinux.iso加载到内存来仿真启动的,既太浪费了时间,又浪费可用内存空间了……

只要把CDlinux.iso中boot/CDlinux/下的bzImage和initrd文件解出来,占用7MB不到的磁盘空间,却可以省出整个iso文件,当然,如果你还在乎那7MB磁盘空间,可以把ISO中这两个文件删除,重新生成ISO即可!!!!即可省出内存,加快启动时间,又不多占用磁盘空间!

当然我认为更好的做法是把CDlinux.iso全解出来,反正它的文件不复杂……

相关内容