无忧启动论坛

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

【不回复也可见】【20120621】ZHS多功能维护盘【简繁体中文菜单】【绝版】

  [复制链接]
1601#
发表于 2012-5-14 12:26:53 | 只看该作者
puppy实在太弱了,很多磁盘驱动都没有,连硬盘都无法读取,还有什么意义
回复

使用道具 举报

1600#
发表于 2012-5-14 12:21:53 | 只看该作者

回复1603

1.在台式机中用光盘启动,很正常,其实也就说明了,和我量产的U盘有关

光盘启动后,按C进入,
grub>find
(cd)
(hd0,0)
(hd0,1)
(hd0,2)
grub>

很正常呀

2.fd0是我量产的U盘的一个分区(FAT32),U盘量产后分为cd和fat32分区
回复

使用道具 举报

1599#
发表于 2012-5-14 11:57:39 | 只看该作者

回复 #1600 2012bdsjhf 的帖子

新版竟然把 fd0 的几何参数搞错了。这很蹊跷。

请问,你的 fd0 究竟是啥?

你用旧版 grldr 能访问 fd0 里面的文件吗?
  1. ls     (fd0)/
复制代码


[ 本帖最后由 不点 于 2012-5-14 12:08 编辑 ]
回复

使用道具 举报

1598#
发表于 2012-5-14 11:56:02 | 只看该作者
原帖由 2012bdsjhf 于 2012-5-14 11:54 发表
还有一个问题,你们也提到了,就是菜单出来前,等待的时间比较长

这个问题,你可以用#1595楼的附件试一下,在我这已经OK了
=======================================
解开放到/boot/grub/目录下
回复

使用道具 举报

1597#
发表于 2012-5-14 11:54:47 | 只看该作者

还有一个问题,你们也提到了

还有一个问题,你们也提到了,就是菜单出来前,等待的时间比较长
回复

使用道具 举报

1596#
发表于 2012-5-14 11:52:14 | 只看该作者

聪明人变糊涂了,居然忘记空格了,哈哈!新旧版对比如下:

新版:

grub>geometry (fd0)
drive 0x00(CHS):C/H/S=710/128/63,Sector Count/Size=5725440/512
Partition num:0,
Error25:Disk read error
Partition num:1,
Error25:Disk read error
Partition num:2,
Error25:Disk read error
Partition num:3,
Error25:Disk read error
Error25:Disk read error
grub>

旧版:
grub>geometry (fd0)
drive 0x00(CHS):C/H/S=1701/255/63,Sector Count/Size=27326565/512
Partition num:0,Filesystem type unknown,partition type 0x65
Partition num:1,Filesystem type unknown,partition type 0x72
Partition num:2,Filesystem type unknown,partition type 0x79
Partition num:3,Filesystem type unknown,partition type 0x0D
Filesystem type unknown,using whole disk
grub>
回复

使用道具 举报

1595#
发表于 2012-5-14 11:49:00 | 只看该作者

回复 #1598 zhs509 的帖子

估计可以的。

PXE 的搜索是由 grub4dos 实现的,即,通过服务器端的 dir.txt 来做的,所以,也算是安全可控的。

ud 的搜索也是 “ 软件 ” 性质的,与硬件无关。ud 存在与否,对于 grub4dos 是透明的。

但软盘和 cd 存在与否,grub4dos 是不知晓的,因为 BIOS 可以犯错误,故意让其 “ 存在与否 ” 变得不可确定。

其他人可以理解为那是 BIOS 的 bug。不过,根据我的经验,打死我都不相信这会是 bug。

硬盘其实也敢犯错误的,比如在 BIOS 数据区中,多出几个额外的不存在的硬盘(目的是故意制造死机)。但是,如果犯这样的错误,DOS 大概也会死掉。所以,我们可以认为,硬盘不敢犯这样的错误。而且至今也没有证据显示硬盘曾经犯过这样的错误。

所以,硬盘,ud 盘以及 pxe 盘,也可以认为是安全的、可以搜索的。
回复

使用道具 举报

1594#
 楼主| 发表于 2012-5-14 11:38:46 | 只看该作者

回复 #1598 不点 的帖子

因为考虑到部分工具UD、PXE也可以使用,我改用用下面的条件搜索应该没问题吧?
if exist /xx/xx.bin || find --devices=hup --set-root /xx/xx.bin
回复

使用道具 举报

1593#
发表于 2012-5-14 11:35:10 | 只看该作者

回复 #1595 2012bdsjhf 的帖子

geometry(fd0) 错了,应该是

  1. geometry       (fd0)
复制代码
回复

使用道具 举报

1592#
 楼主| 发表于 2012-5-14 11:32:05 | 只看该作者

回复 #1594 不点 的帖子

谢谢老大指点 我下次直接改为先判断当前设备是否满足条件,然后再判断其他设备(排除搜索cd和fd)
回复

使用道具 举报

1591#
发表于 2012-5-14 11:31:43 | 只看该作者
把楼主的菜单改了一下,看看是否更合理
==========================
小测了一下,已经不卡了,看楼主兄弟是否采纳

[ 本帖最后由 527104427 于 2012-5-14 11:38 编辑 ]

MENU.7z

9.11 KB, 下载次数: 35, 下载积分: 无忧币 -2

回复

使用道具 举报

1590#
发表于 2012-5-14 11:31:16 | 只看该作者

回复1591

新旧版提示一样:

grub>geometry(fd0)
Warning!No such command:geometry(fd0)
grub>

我输错了吗?
回复

使用道具 举报

1589#
发表于 2012-5-14 11:27:08 | 只看该作者

回复 #1590 zhs509 的帖子

find 命令不仅应该排除 fd0 ,也应该排除 cd 设备。因为以前有报告,访问 cd 时死机。

当然,你这里是从 cd 启动的,所以,访问 cd 没问题。但本来 cd 已经是 root 设备,无需 find。

所以,find 命令应该总是排除软盘和 cd 设备。保证具有最大的安全系数。

2012bdsjhf 反馈的是另外一个性质的问题,这里面可能有新的秘密,有待挖掘。一定得找到病根,请继续。
回复

使用道具 举报

1588#
 楼主| 发表于 2012-5-14 11:21:55 | 只看该作者

回复 #1591 不点 的帖子

谢谢老大提醒,我下次会注意添加忽略搜索软盘,避免卡死
回复

使用道具 举报

1587#
发表于 2012-5-14 11:18:12 | 只看该作者

回复 #1589 2012bdsjhf 的帖子

你说的是,新版访问软盘死机,旧版可以访问软盘。

请用新版做试验。

试试 geometry (fd0),贴出输出结果。

也可以贴出旧版的结果,以便对比。
回复

使用道具 举报

1586#
 楼主| 发表于 2012-5-14 11:17:46 | 只看该作者

回复 #1582 不点 的帖子

老大,要不我将访问的设备进行下限制,如 --devices=chup可以吗

另外和1589楼的反馈比较,这个问题也有点奇怪。
当然可能是我的菜单命令刚好在这个版本爆发了问题

[ 本帖最后由 zhs509 于 2012-5-14 11:19 编辑 ]
回复

使用道具 举报

1585#
发表于 2012-5-14 11:12:43 | 只看该作者

关于GRUB启动反馈

1,换了一个U盘(金士顿4G),重新量产【20120511】,和昨天的问题一样

2,然后在台式机中用此U盘启动,按C,出现grub>后,输入find后,屏幕显示如下:
(cd)
(hd0,0)
(hd0,1)
(hd0,2)
光标停在这里就卡死了
3,用grub文件替换后,重新量产做的U盘,可以正常显示如下,
(cd)
(hd0,0)
(hd0,1)
(hd0,2)
(fd0,1)
(fd0,2)
(fd0,3)
grub>
回复

使用道具 举报

1584#
发表于 2012-5-14 11:11:46 | 只看该作者
原帖由 不点 于 2012-5-14 11:03 发表
这个你理解错了。

find --set-root /boot/grub/menu.lst 设置卷的根目录为当前目录。它不是设置 /boot/grub/ 为当前目录。作为比较,如下的命令

find       --set-root=/boot/grub/       /boot/grub/men ...

谢不点老师指正
回复

使用道具 举报

1583#
发表于 2012-5-14 11:03:37 | 只看该作者

回复 #1586 527104427 的帖子

这个你理解错了。

find --set-root /boot/grub/menu.lst 设置卷的根目录为当前目录。它不是设置 /boot/grub/ 为当前目录。作为比较,如下的命令

  1. find       --set-root=/boot/grub/       /boot/grub/menu.lst
复制代码


才设置卷的 /boot/grub/ 目录为当前目录。
回复

使用道具 举报

1582#
发表于 2012-5-14 10:51:06 | 只看该作者
另外,这个命令有点问题:
if exist /BOOT/GRUB/SLIC
MENU.LST是在/BOOT/GRUB/目录下的,如果你前面已经find --set-root /boot/grub/menu.lst,那么你上面的命令就变成if exist ()/boot/grub/boot/grub/slic
应该加个括号,比较安全:
if exist ()/BOOT/GRUB/SLIC
回复

使用道具 举报

1581#
发表于 2012-5-14 10:48:02 | 只看该作者
建议楼主改下菜单,或者改成这样?
iftitle [if exist ()/BOOT/0PE.BIN]

iftitle [if exist ()/BOOT/IMGS/WIN7PE.ISO || if exist ()/BOOT/WIN7PE.ISO || if exist ()/WIN7PE.ISO || if exist ()/BOOT/WIN7PE.BIN || if exist ()/BOOT/IMGS/WIN7PE.BIN || if exist ()/WIN7PE.BIN]

这样就不会去搜索其它设备的东西了,只在当前设备里找
回复

使用道具 举报

1580#
发表于 2012-5-14 10:43:47 | 只看该作者
find --set-root ....

是一条错误的命令!

错就错在,它可能去找不存在的设备,例如软盘 fd0。

如果不需要访问软盘,一定要加上 --ignore-floppies 参数。

补充:有些 BIOS 在 BIOS 数据区的 0x410 中指示有软盘存在,但实际上却没有软盘存在。此时用 find 命令就可能造成死机或者假死。

带有 --ignore-floppies 时可以安全地处理这种情况。

想想看,为何 grub4dos 自己的内置菜单中凡是 find 命令一定要加上 --ignore-floppies 参数呢?

[ 本帖最后由 不点 于 2012-5-14 10:49 编辑 ]
回复

使用道具 举报

1579#
发表于 2012-5-14 10:31:16 | 只看该作者
原帖由 不点 于 2012-5-14 10:26 发表
好的,你已经证明是菜单的问题了。

那么接下来再深入研究究竟菜单中的 iftitle 导致了什么问题。

猜测一下,iftitle 命令都执行了什么操作?是不是伴随着 find 操作,导致访问了不存在的设备例如 fd0 ?
...

楼主的菜单有大量find --set-root命令,如:
iftitle [find --set-root /BOOT/0PE.BIN]

iftitle [find --set-root /BOOT/IMGS/WIN7PE.ISO || find --set-root /BOOT/WIN7PE.ISO || find --set-root /WIN7PE.ISO || find --set-root /BOOT/WIN7PE.BIN || find --set-root /BOOT/IMGS/WIN7PE.BIN || find --set-root /WIN7PE.BIN]

我呆会再试试其它的
==================================================
启动时按C进入命令行,执行ROOT命令,再试着访问光盘上的文件,一切正常

[ 本帖最后由 527104427 于 2012-5-14 10:37 编辑 ]

1.png (6.05 KB, 下载次数: 124)

1.png

2.png (2.96 KB, 下载次数: 123)

2.png
回复

使用道具 举报

1578#
发表于 2012-5-14 10:26:52 | 只看该作者
好的,你已经证明是菜单的问题了。

那么接下来再深入研究究竟菜单中的 iftitle 导致了什么问题。

猜测一下,iftitle 命令都执行了什么操作?是不是伴随着 find 操作,导致访问了不存在的设备例如 fd0 ?

访问不存在的设备,不仅速度可能变慢,而且可能会直接死机。
回复

使用道具 举报

1577#
发表于 2012-5-14 10:20:41 | 只看该作者
刚才试了一下,把楼主的MENU.LST改造了一下,把里面的iftitle命令全给去掉,发现一下子就进菜单了
回复

使用道具 举报

1576#
发表于 2012-5-14 10:10:29 | 只看该作者
好的,你在这条命令之前添加一条 root 命令,不带参数,确定一下当前的 root 设备是不是光盘。

或者你也可以在启动时按 c 键快速进入命令行,然后执行 configfile /boot/grub/menu.lst 看看会卡多长时间。

这就等于说,访问光盘文件时速度变慢。

不应该的。

这里面应该有什么秘密,有待破解。请诸位继续。

试验一下,访问光盘上别的文件,是否一样变慢。比如用 cat 命令访问光盘文件,看卡不卡?
回复

使用道具 举报

1575#
发表于 2012-5-14 10:02:21 | 只看该作者
原帖由 不点 于 2012-5-14 09:57 发表
今后遇到此类情况,都应该这么处理。

首先可以准确地判断出,grldr 已经成功接管控制。只要这个条件成立,那么就可以在启动时快速按 c 键进入命令行。通常这个是不会失败的,除非键盘 BIOS 也被 BIOS 厂家恶 ...

卡在这了:grldr内置菜单的一句命令
configfile /boot/grub/menu.lst
回复

使用道具 举报

1574#
发表于 2012-5-14 09:57:06 | 只看该作者
今后遇到此类情况,都应该这么处理。

首先可以准确地判断出,grldr 已经成功接管控制。只要这个条件成立,那么就可以在启动时快速按 c 键进入命令行。通常这个是不会失败的,除非键盘 BIOS 也被 BIOS 厂家恶意破坏掉。

此时的 C 键进入命令行,与任何菜单参数设置无关。这个动作在解析菜单之前就已经解析了,所以会跳过任何菜单(当然也跳过内置菜单),强制进入命令行。

进入命令行之后,就可以运行很多命令了。检查哪条命令不能正常执行,这就把毛病找出来了。
回复

使用道具 举报

1573#
 楼主| 发表于 2012-5-14 09:49:07 | 只看该作者
看来只能等2012bdsjhf反馈情况了。。。
回复

使用道具 举报

1572#
发表于 2012-5-14 09:47:26 | 只看该作者

回复 #1570 527104427 的帖子

刚刚注意到,你说的不是死机,而是卡顿了 20 秒。

这就表明,程序代码没有错,或没有大错。错的很可能是访问了不该访问的设备,例如 fd0 之类的不存在的设备。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-8-3 20:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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