|
有用过CDLinux的吗?暂时很想在U盘用一下这个。
用光盘倒是可以启动CDLinux,现在是想用grub4dos来加载iso文件。
总是只能启动到字符界面,然后就提示:can't find out where CDLinux is installed
百度了很久,倒是有不少人提相同问题,但都没解决啊
用过的语句:
title CDlinux1 (ISO emulation)
find --set-root /boot.ini
map --mem /cdlinux.iso (hd32)
map --hook
kernel (hd32)/CDlinux/bzImage CDL_DEV=hd1 quiet CDL_LANG=zh_CN.UTF-8 CDL_DIR=/ CDL_IMG=cdlinux.iso
initrd (hd32)/CDlinux/initrd
map --unhook
boot
----------------
补充一下:
我现在是在vmware(7.1)里面装的一个Windows系统(2003),然后在c:\放了个grldr,
然后在boot.ini中加了个c:\grldr=GRUB,这样调用的GRUB
希望有在虚拟机中这样测试成功过的同学指教一下。。。
--
基本解决,谢谢大家。
记录一下,主要有三点,
一是用虚拟机VMware测试时,硬盘不要用SCSI格式,要用IDE格式
二是命令上要加参数, CDL_DEV,CDL_DIR, CDL_IMG
三是参数指定目录和文件时大小写要注意,必须和实际的一致
实在好奇的话,找出文件/etc/rc.d/rc.extra看一下就知道了,
CDL_DEV,CDL_DIR, CDL_IMG这些参数就是用来帮助搜索光盘文件的。
CDL_DEV用于搜索磁盘,一般用不着,不指定的话有脚本会自动搜索每个磁盘
CDL_DIR为指定的目录,启动时会自动在每个磁盘搜索是否有这个目录
CDL_IMG为指定的ISO文件名,启动时会搜索上面指定的目录下是否有这个文件
就是组合文件名 /磁盘/目录/文件名 一定要存在,
找到这个文件后CDlinux启动后会自动mount这个iso文件到 /media/__CD__ 以便使用。
找不到的话,当然就会报错了:can't find out where CDLinux is installed- MNT_DIR=`grep -w "^$REAL_DEV" /etc/mtab | awk '{print $2}'`
- CDL_IMG_DIR="$CDL_DIR"
- IMG_MNT=/media/__CDL__
- mkdir -p "$IMG_MNT" &&
- mount -o loop,ro "$MNT_DIR/$CDL_DIR/$CDL_IMG" "$IMG_MNT"
复制代码
看来是个很简单的事,只是因为不熟悉就变得很复杂了。。。。
--
要实验的话,自已在命令行窗口编辑那个文件 vi /etc/rc.d/rc.extra
在这个文件最前面手动加两个变量
CDL_IMG=xxxx.iso
CDL_DIR=xxxxx
然后再执行一下这个文件,就会提示一个绿色的 Found 了。
然后再startx也是可以进入图形界面的
----
顺便说一下,他那个脚本有个潜在的Bug:
/etc/rc.d/rc.extra , row 127
[ $CDL_LOOP = "yes" ] || {
这个条件判断在变量为空时会报错 : unary operator expected.
其实就和DOS里面的字符串防空一样,要把变量用引号括起来:
[ “$CDL_LOOP” = "yes" ] || {
这样就行了。
其实他这个脚本里面其他地方的判断都是加了引号的,估计这一行是疏忽了没加。
虽然按正常流程的话这个变量不会为空,但是终究是一个潜在的Bug。
[ 本帖最后由 我是神仙 于 2011-12-2 00:09 编辑 ] |
|