无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6840|回复: 24
打印 上一主题 下一主题

请教Grub4Dos启动小芭比的问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-5-7 17:57:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这么些个文件,如果放在合盘根目录
menu.lst这么写可以启动
title xbarbie
kernel /VMLINUZ pmedia=cd
initrd /INITRD.GZ

但我的想法是将这些文件放入光盘的G4D\LINUX\XBARBIE目录下
menu.lst改成
title xbarbie
kernel /G4D/LINUX/XBARBIE/VMLINUZ pmedia=cd
initrd /G4D/LINUX/XBARBIE/INITRD.GZ

这样启动的时候总是说找不到pup_412.sfs这个配置文件

搜索了一些资料总是无法解决,包括本坛的一些例子,但都是应用在U盘上的例子多....

求教有经验的朋友帮忙

1.png (10.84 KB, 下载次数: 85)

1.png
2#
发表于 2009-5-7 19:27:59 | 只看该作者
你可以把Vmlinuz和initrd.gz文件放到子目录中,但那个pub_412.sfs必须放到光盘的根目录下。当然,你非要不放在根目录下也不是没有办法,你需要解开initrd.gz,修改其中的init脚本中查找pub_412.sfs这一段程序,将它改成在你的相应子目录中查找就行了。
回复

使用道具 举报

3#
 楼主| 发表于 2009-5-7 19:40:00 | 只看该作者

回复 #2 Climbing 的帖子

谢老大指教
initrd.gz里面的3M多的initrd文件怎么修改呢 用UE?我搜索了下没有pub_412之类的字眼 是不是还要解压的?
该不会设计到linux的编程吧?....

[ 本帖最后由 x.Nichdlas 于 2009-5-7 19:41 编辑 ]
回复

使用道具 举报

4#
 楼主| 发表于 2009-5-7 19:43:30 | 只看该作者
呵呵 貌似有点眉目了 看看先
回复

使用道具 举报

5#
发表于 2009-5-7 20:16:00 | 只看该作者
我的在没修改的情况下是把pup_412.sfs放到boot目录里。ms在不修改initrd.gz里面的脚本情况下只能放根目录和boot目录里。
内核和initrd放哪都没关系
g4d菜单:
title   2, Puppy Linux
kernel /boot/linux/xbb PMEDIA=usbflash
initrd /boot/linux/xbb.gz


---------
顺便贴上收集的

pup_4XX.sfs not found

http://puppy.cnbits.com/node/192

有不少使用小芭比或者Puppy Linux的朋友报告遇到了启动时显示pup_4xx.sfs not found的问题。由于这和硬件驱动、分区方式等很多因素有关,我没有办法在自己的机器上把这些问题都重复出来,也就不容易找到问题的根结。在这个贴子里我会收集一些别人解决此问题的方法,也许对你有用。

把menu.lst(硬盘安装)或者syslinux.cfg(U盘安装)里的内核参数中PSUBDIR=puppy去掉或者增加这个参数。
如果pup_400.sfs的文件名是大写,把它改为小写(见Puppy Dingo 4.00试用)
加内核参数ide=nodma和acpi=off(见pup_400.sfs not found on boot),据说对在CD上使用Puppy有帮助。
加上内核参数PDEV1=sdaX (sadX是pup_4XX.sfs所在分区,如sda1对应windows的C盘)
去除PSUBDIR参数后,把pup_4XX.sfs复制到硬盘fat16或fat32分区的根目录。
更改PMEDIA=  参数(如果是SATA硬盘,参数可设为PMEDIA=satahd,PMEDIA参数可以是以下之一:usbflash|usbhd|usbcd|ideflash|idehd|idecd|idezip|satahd|satacd|scsihd|scsicd|ataflash|atahd|atacd|atazip|cd)
更改BIOS里的硬盘参数及模式(如将SATA硬盘模式从AHCI更改为RAID)
找不到pup_4xx.sfs后,系统会自动进入命令行模式,可以用以下方法调试一下:
输入:probepart_init (或 fdisk /dev/sda)
会显示各驱动器分区信息,如:
/dev/sda1|ntfs|9767456
/dev/sda2|none|2
/dev/sda5|ntfs|19534976
/dev/sda6|vfat|12594896
/dev/sda7|ext3|6393806
/dev/sda8|swap|546146
/dev/sda9|ntfs|15631182
/dev/sda10|vfat|12643092
/dev/sda11|ext3|3293262
/dev/sdb1|vfat|4080446
/dev/sdb2|ext3|11711384
与menu.lst设置比较一下,看看menu.lst的写法是否正确。

[ 本帖最后由 yjd 于 2009-5-7 20:17 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2009-5-7 20:30:28 | 只看该作者
可怜的是我没有boot这个目录 除非我推翻合盘的目录结构重建了
回复

使用道具 举报

7#
发表于 2009-5-7 20:36:29 | 只看该作者
呵呵。那不改initrd.gz里面的脚本只能放跟目录里。
ms上次我有解开看过有点看不大懂。。不像slax就修改一个地方就可以。
回复

使用道具 举报

8#
发表于 2009-5-7 20:39:55 | 只看该作者
本人一直不太理解合盘有什么意义?除了纯粹练技术以外。我现在几乎已经不使用任何启动光盘了。

以上只是题外话。

initrd.gz的修改相当麻烦,绝不象在windows下用UE打开一个文件修改几个字符串那么简单。

initrd.gz首先是一个用gunzip压缩的磁盘映像文件,所以要修改它一定要先解压缩,然后这个磁盘映像可能还使用的是Linux的ext文件系统(或者minix文件系统),所以,你还要在linux下用mount命令挂载它,然后再修改其中的内容。大概是这个样子,你可以用google搜索一下详细的修改方法 。
回复

使用道具 举报

9#
 楼主| 发表于 2009-5-7 20:47:55 | 只看该作者
谢谢C大的指点 咱还属菜鸟水平~~~
回复

使用道具 举报

10#
发表于 2009-5-7 21:06:25 | 只看该作者
我以前也试过合盘puppy 这是日记.
http://hi.baidu.com/gagi/blog/item/f23dffdd512016315982dded.html
回复

使用道具 举报

11#
 楼主| 发表于 2009-5-7 21:13:52 | 只看该作者
谢谢楼上的 我参考参考
回复

使用道具 举报

12#
发表于 2009-5-8 00:20:57 | 只看该作者
有对linux脚本比较了解朋友,看下这段。
#find puppy files in the pc...
touch /tmp/PUPPYFILES
for ONETRY in $LESSPARTS
do
FND_FULLINSTALL=""
$ONETRY" | cut -f 1 -d '|'`"
$ONETRY" | cut -f 2 -d '|'`"
#v403 nasty bug: usb optical drive showing as /sys/block/sr0, but won't mount, needs more delay...
mntfunc -t $ONEFS /dev/$ONEDEV /mnt/data
if [ $? -ne 0 ];then
  sleep 5 #2 wasn't enough.
  mntfunc -t $ONEFS /dev/$ONEDEV /mnt/data
  [ $? -ne 0 ] && continue
fi
[ -f /mnt/data/etc/puppyversion ] && FND_FULLINSTALL="/etc/puppyversion"
FND_INITRDGZ="`find /mnt/data -maxdepth 2 -mount -type f -name initrd.gz | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"
#v3.01 '*' means zero or more extra characters. this is for custom naming...
FND_PUPXXXSFS="`find /mnt/data/xxxx -maxdepth 2 -mount -type f -name pup_${PUPPYVERSION}*.sfs | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"  //红色部分加路径是否可行
FND_ZDRVSFS="`find /mnt/data -maxdepth 2 -mount -type f -name zdrv_${PUPPYVERSION}.sfs | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"
FND_PUPSAVE2FS="`find /mnt/data -maxdepth 2 -mount -type f -name pup_save*.[23]fs | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"
FND_SWAPFILEPUP="`find /mnt/data -maxdepth 2 -mount -type f -name pupswap.swp | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"
#v2.22 improved folder name search, avoid false hits...
FND_MULTIFOLDER="`find /mnt/data -maxdepth 1 -mount -type d -name 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9] | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"
[ "$FND_MULTIFOLDER" != "" ] && echo "$ONEDEV $ONEFS $FND_MULTIFOLDER" >> /tmp/MULTIFOLDERS
#all written on one line...
echo -n "$ONEDEV $ONEFS " >> /tmp/PUPPYFILES
echo "$FND_INITRDGZ $FND_PUPXXXSFS $FND_ZDRVSFS $FND_PUPSAVE2FS $FND_MULTIFOLDER $FND_FULLINSTALL $FND_SWAPFILEPUP" >> /tmp/PUPPYFILES
[ -f /mnt/data/SAVEMARK ] && PSAVEMARK="`cat /mnt/data/SAVEMARK`" #v3.97 partition# that has or will-have pup_save.
umntfunc /mnt/data
done
#in case PSUBDIR boot param (path of puppy files), filter...
if [ "$PSUBDIR" ];then
SPATTERN="/${PSUBDIR}/"
PUPPYFILES="`grep "$SPATTERN" /tmp/PUPPYFILES | head -n 1 | tr -s ' '`" #v3.00...
if [ "$PUPPYFILES" ];then
  PDEV1="`echo -n "$PUPPYFILES" | cut -f 1 -d ' '`" #v3.01
  DEV1FS="`echo -n "$PUPPYFILES" | cut -f 2 -d ' '`" #v3.01
  xpupfiles="`echo -n "$PUPPYFILES" | cut -f 3-99 -d ' ' | tr ' ' '\n' | grep "$SPATTERN" | tr '\n' ' '`" #v3.01
  PUPPYFILES="$PDEV1 $DEV1FS $xpupfiles"
fi
else
PUPPYFILES="`cat /tmp/PUPPYFILES | tr -s ' '`"
fi
echo "$PUPPYFILES" > /tmp/PUPPYFILES
回复

使用道具 举报

13#
发表于 2009-5-8 01:28:14 | 只看该作者
唉!想测试下,结果cpio重新打包出来竟然不能加载-_-!!。。。
linux和win下打包都没成功。。。
回复

使用道具 举报

14#
发表于 2009-5-8 02:10:41 | 只看该作者
修改下面这句,在红色加重字体前加入路径应该可以吧(如/puppy/pup_${PUPPYVERSION}*.sfs ):

FND_PUPXXXSFS="`find /mnt/data/xxxx -maxdepth 2 -mount -type f -name pup_${PUPPYVERSION}*.sfs | grep -v ' ' | sed -e 's%
回复

使用道具 举报

15#
发表于 2009-5-8 07:44:44 | 只看该作者
确实只能放在boot下。
回复

使用道具 举报

16#
发表于 2009-5-8 08:56:24 | 只看该作者
原帖由 xianglang 于 2009-5-8 02:10 发表
修改下面这句,在红色加重字体前加入路径应该可以吧(如/puppy/pup_${PUPPYVERSION}*.sfs ):

FND_PUPXXXSFS="`find /mnt/data/xxxx -maxdepth 2 -mount -type f -name pup_${PUPPYVERSION}*.sfs | grep -v ...

昨天解出来看半天,很多看不懂,不过这里可能是关键吧。
结果重新cpio打包,nnd不能用郁闷。。不像别的linux直接mount挂载修改就可以。

我觉得加前面可能好点。后面有-name参数是指定文件名。如果加上路径肯定不行吧?

[ 本帖最后由 yjd 于 2009-5-8 08:57 编辑 ]
回复

使用道具 举报

17#
发表于 2009-5-8 11:07:30 | 只看该作者

回复 #12 yjd 的帖子

我觉得修改--maxdepth后面的数值就可以了,这个数值应该是搜索的目录的深度,我不知道2是不是代表二级子目录,你加深几层不就行了?

initrd.gz的做法有死步骤,一定要严格按要求来做才行,但我确实帮不上什么忙。可以找sysoft时空论坛的pt来看一下。
回复

使用道具 举报

18#
 楼主| 发表于 2009-5-8 12:31:13 | 只看该作者
大家都很厉害很热心啊......我打算放弃这个方法了
一是对linux不了解 二是目前还没时间搞
谢谢大家的帮忙和指导
回复

使用道具 举报

19#
发表于 2009-5-8 12:52:14 | 只看该作者
放到根目录下解决就行了
而且又没什么影响
无非觉得根目录下多了个文件不爽而已(只是有些洁癖的人)
既然不熟悉
还非要去改
我觉得是否无此必要
回复

使用道具 举报

20#
发表于 2009-5-8 13:29:17 | 只看该作者
原帖由 yewuqiu 于 2009-5-8 12:52 发表
放到根目录下解决就行了
而且又没什么影响
无非觉得根目录下多了个文件不爽而已(只是有些洁癖的人)
既然不熟悉
还非要去改
我觉得是否无此必要


话不是这么说的。要是什么都放根目录下,那根目录不就一大堆文件了?还有不熟悉的东西,可以去学啊,哪有人一开始什么都熟悉都会的?

另外那个引导包解压出来之后,都不知道用什么打开——用WINIMAGE打开是空白一片,VMD挂载也不行。
回复

使用道具 举报

21#
发表于 2009-5-8 13:54:49 | 只看该作者
从yjd解出的init脚本看,你将那个pup_xxxx.sfs文件放到光盘根目录下任意一个子目录中都是没有问题的,不限于一定在boot目录下,也不一定要放到光盘的根目录下。

有兴趣的可以试试。
回复

使用道具 举报

22#
 楼主| 发表于 2009-5-8 14:15:12 | 只看该作者
原帖由 Climbing 于 2009-5-8 13:54 发表
从yjd解出的init脚本看,你将那个pup_xxxx.sfs文件放到光盘根目录下任意一个子目录中都是没有问题的,不限于一定在boot目录下,也不一定要放到光盘的根目录下。

有兴趣的可以试试。

哦 明白了 如果放的目录太深 也会导致搜索的时候太久 因为会一级一级目录的遍览对吧
或许就只改目录深度就能达到我的要求了
回复

使用道具 举报

23#
发表于 2009-5-8 14:58:04 | 只看该作者
还是Climbing大强。
如果那个指的是2级目录。
那lz应该测试下放到任意二级目录看能否找到。如果可以那你的问题不就解决了。

这样搜索会不会节省时间,把目录定死:
find /mnt/data/test -maxdepth 1
回复

使用道具 举报

24#
发表于 2009-12-25 16:30:33 | 只看该作者
这应该是文件系统的设置问题,syslinux引导程序会直接搜索光盘的,位置不是很重要

就是在这里设置。怎么设置??我也不知道!!!

2002-01-01_005204.JPG (43.4 KB, 下载次数: 46)

2002-01-01_005204.JPG
回复

使用道具 举报

25#
发表于 2009-12-26 12:35:52 | 只看该作者
锋哥Climbing 出马就是不一样,顶!
问下,楼上不用点选小写字母吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-27 08:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表