|
frank55555
初级用户
积分 89
发帖 47
注册 2007-4-15
状态 离线
|
『楼 主』:
求,在GRUB中加載U盤中的文件??
我不想把U盤做成GRUB啟動盤.但是可不可以啟動到DOS再運行GRUB.EXE來加載IMG文件.或XPE之類的.我試了一下,可是啟動了GRUB后就不認U盤了.怎么做才行呀?高手指點.?
|
|
2007-10-26 14:43 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
2 楼』:
先说你的主板是否支持 U 盘启动。比如说,主板从 U 盘启动到 DOS。
如果你的主板不支持直接启动 U 盘,而是必须先从硬盘或者其它途径进入 DOS,再利用 DOS 下的 USB 驱动来访问 U 盘。如果这样的话,你就不要往下看了,因为这种情况是无法让 grub4dos 识别 U 盘的。
如果你的主板直接能启动 U 盘上的 DOS,那么,GRUB4DOS 一定可以访问 U 盘。如果不能访问,你可以报告 BUG,并且这样的 BUG,一般很快会得到解决的。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-10-26 14:55 |
|
|
frank55555
初级用户
积分 89
发帖 47
注册 2007-4-15
状态 离线
|
『第
3 楼』:
沒有說明白.
我的意思是,我的U盤是可以啟動的.里面只有基本的三個文件.再就是把GRUB 4 DOS復制到U盤.再就是一些工具文件.(比如A.IMG),能不能,先啟動DOS .再運行GRUB.EXE 再接著怎么用(A.IMG)文件.
我在GRUB>中用FIND /A.IMG 可是沒有找到文件.出現ERR 17 什么的?我沒有記錄下來.
[ Last edited by frank55555 on 2007-10-26 at 03:39 PM ]
|
|
2007-10-26 15:37 |
|
|
frank55555
初级用户
积分 89
发帖 47
注册 2007-4-15
状态 离线
|
『第
4 楼』:
會不會是我把軟驅打開了.我的U盤啟動后是A盤.我有一個軟驅.
我U盤啟動后是A盤
A:
再運行GRUB.EXE,就到了GRUB>
GRUB>
對吧,可是我看到有的是方說可以在U盤里面用XPE
我就把XPE里面的SETUPLDR.BIN 改名為LDRXPE 放到根目錄.再運行CHAINLOADER /LDRXPE就不行呀?提示找不到文件.我用FIND /LDRXPE出是找不到文件.
|
|
2007-10-26 15:47 |
|
|
frank55555
初级用户
积分 89
发帖 47
注册 2007-4-15
状态 离线
|
『第
5 楼』:
我在一個小硬盤里面試過了可以啟動XPE.先安裝GRUB 再復制GRLDR MENU.LST 二個文件到C: MENU.LST 內容為
TITLE MICRO WINDOWS XPE
CHAINLOADER /LDRXPE
再把XPE.ISO解開.把WINNT.XPE SETUPLDR.BIN(改名為LDRXPE) NTDETECT.COM放在根目錄.啟動可以.正常.
所以我想U盤可不可以不安裝GRUB只運行GRUB.EXE能不能啟動XPE.
也許是我不知道下一步怎么做.我只能啟動到GRUB >
用CHAINLOADER /LDRXPE 出錯.
用FIND /LDRXPE 出錯.
不知所措了.
|
|
2007-10-26 15:57 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
6 楼』:
看来你的用法是正确的。好像你不是很熟悉 grub4dos 的一些基本操作。你可以先到网上找找资料。
比如,http://grub4dos.sourceforge.net/wiki/index.php/Main_Page 就可以。
Error 17 是“文件找不到”。要么是你的文件没有放在根目录,要么是 grub4dos 没能认出你的 U 盘。
如果你遇到不能访问 U 盘的情况,请把如下命令序列执行一遍,把结果贴上来:
debug 0x7FFFFFFF
geometry (hd0)
geometry (hd1)
geometry (fd0)
也请报告一下 U 盘的大小。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-10-26 16:00 |
|
|
frank55555
初级用户
积分 89
发帖 47
注册 2007-4-15
状态 离线
|
『第
7 楼』:
謝謝你的回答!
我運行DEBUG 0X7FFFFFFF
GEOMETRY (HD0)
提示是:
int13/4b01/(80),err=1,drive=80,.......
error 26: selected disk does netexist
運行geometry (hd1) 也是一樣的.
運行geometry (fd0) 提示:
int13/41(0),version=0,int13/08(0),version=0,C/H/S=31/255/63.int13/02(0),err=0,drive 0x0(CHS):C/H/S=32/255/63,sector count/size=511968/512
我不知道是不是找到了U盤.可是我用FIND /LDRXPE還是找不到文件.(確定有這個文件),電腦上面有一個軟驅.剛才這個是不是找到軟驅了呀?
我的U盤是256M的.清華紫光的.
我之所以不想裝GRUB到U盤.是因為我裝上之后做好菜單,比如第一個啟動DOS7.1吧.(啟動一個IMG)文件.這時,也會出現一個A盤.可是我的U盤以前也是A盤.現在就沒有了.又不能退回來.只有再重啟了."也就等于用不了U盤了."所以我想運行GRUB.EXE 這樣也可以用QUIT退出來呀?
而且DOS啟動(三個文件)是最快的.我也不想有太多的菜單選擇.先啟動DOS再一步一步來.想要什么再啟用什么.
[ Last edited by frank55555 on 2007-10-26 at 05:04 PM ]
|
|
2007-10-26 16:45 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
8 楼』:
你这个机器没有硬盘,是吧?
从 geometry (fd0) 的结果来看,这是不要紧的,还有希望成功。511968 个扇区,就是 256M。所以,这就是你的 U 盘。
你用
cat --hex (fd0)0+1
cat --hex (fd0)1+1
cat --hex (fd0)2+1
cat --hex (fd0)3+1
cat --hex (fd0)4+1
cat --hex (fd0)5+1
……………………
cat --hex (fd0)N+1
如此试验,看看第一个失败的 N 的号码是多少?
你当然不会逐个去试验,因为那样很慢。你动动脑筋,就可以比较快地找到 N 的值(比如跳过一些值,先测试比较大的 N 值)。
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-10-26 17:37 |
|
|
frank55555
初级用户
积分 89
发帖 47
注册 2007-4-15
状态 离线
|
『第
9 楼』:
我試了一下,前面的顯示都是十六進制的,我沒有記下來.再說了這么多我也記不了.
從cat --hex(fd0)511937+1這兒顯示還是十六進制數字.
到cat --hex(fd0)511938+1就顯示Error 30:Disk read error
這些是什么呀?我不懂.
我機器是沒有硬盤.(我沒有接硬盤).
|
|
2007-10-27 16:14 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
10 楼』:
问题好像不严重,但需要进一步确定问题的根源。
请你把 cat --hex (fd0)0+1 显示的前 6 行贴出来。
还有,root (fd0) 显示输出的信息。
还有 root (fd0)/[TAB] 这里 [TAB] 表示按键盘上的 Tab 键,看看可否列出根目录的文件。
如果方便的话,还请你做这样一个工作:
把你的这个 U 盘重新格式化,安装一个干净的纯 DOS 和 grub.exe。其它都不要安装。看看这样能否在进入 grub.exe 后正确显示出文件来。
如果仍然有问题,请你用 16 进制工具,将全部 256M 的扇区截获,经压缩之后,发送给我。可以发到我的邮箱,也可以上传到某处,告诉我下载地址就行。由于文件不多,所以,压缩后应该很小。
[ Last edited by 不点 on 2007-10-27 at 05:23 PM ]
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-10-27 17:05 |
|
|
frank55555
初级用户
积分 89
发帖 47
注册 2007-4-15
状态 离线
|
『第
11 楼』:
昨天我休息,沒有上網看.
先把前面的貼出來看一下吧?
cat --hex (fd0)0+1
00000000 EB 58 90 4D 53 57 49 4E 34 2E 31 00 02 04 20 00 .X.MSWIN4.1
00000010 02 00 00 00 00 F8 00 00 3F 00 FF 00 00 00 00 00 ........?........
00000020 E0 CF 07 00 80 03 00 00 00 00 00 00 02 00 00 00 .................
00000030 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 .................
00000040 00 00 29 B7 DC 06 2C 4E 4F 20 4E 41 4D 45 20 20 ...).,NO NAME
00000050 20 20 46 41 54 33 32 20 20 20 FA 33 C9 8E D1 BC FAT32.3.....
00000060 F8 7B 8E C1 BD 78 00 C5 76 00 1E 56 16 55 BF 22 .{..x..v..V.U"
00000070 05 89 7E 00 89 4E 02 B1 0B FC F3 A4 8E D9 BD 00 .....~N.....
root (fd0)
error 19: connot mount selected partition
[TAB]
Possible commands are :background blocklist boot cat cdrom chainloader clear cmp color commandline configfile debug default displayapm displaymem embed errnum errorcheck fallback find fomtfile foreground fstest geometry halt help hidden flag hide impsprobe initrd install ioprobe si64bit kernel lock makeactive map md5crypt module modulenounzip outline paper partnew parttype password pause pxe quit read reboot root rootnoverily savedefanlt serial setkey setup setvbe splas himage terminal terminfo testload testvbe unhide uppermem vbeprobe write
這是你上面說到的,還有你說重新格式化(是FAT32)再裝是不是重做DOS啟動盤.我做啟動盤是用WINIMAGE把一個軟盤IMG文件寫到U盤.不知這樣可不可以.我過一會把試后的結果發給你吧.
文件太大呀?有240多M呀.我沒有什么共用空間.
[ Last edited by frank55555 on 2007-10-29 at 01:58 PM ]
|
|
2007-10-29 12:52 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
12 楼』:
connot mount selected partition 这条信息就有点像是 chs 的错误造成的。
你在 DOS 下执行 debug,把 int13/ah=8 的执行结果贴上来。具体做法:
用 U 盘启动纯 DOS,启动 微软的 debug,进入 debug 提示符。在 debug 提示符下敲入以下命令:
敲入 A 100 回车,开始汇编
敲入 mov ah, 8 回车
敲入 mov dl, 0 回车,DL=0 表示软盘
敲入 int 13 回车
敲入 int 3 回车
在此多敲入一个回车,结束汇编
敲入 g 回车,开始运行汇编程序。
敲入 q 退回到 DOS。
把屏幕显示的信息贴出来。
----------------
用 U 盘启动,进入 DOS 后,再用 微软的 FDISK 和 FORMAT, SYS 等工具,对 U 盘进行重新分区、格式化的操作。不要利用非微软的工具,也不要安装非微软的工具。里面只再多加一个最新的 grub.exe 就可以了。如果成功,你可以不再追究了,如果失败,你把这个 U 盘的含有有效数据的部分(开头若干个扇区,不足 1M)截获,传给我。
我估计你这么操作之后,grub 有可能就正常了。怀疑第三方的工具制作的 FAT32 文件系统不合乎微软的规范,或者含有未知的 bug。用微软的工具制作,才合乎标准。
===========
补充:当然,u盘是软盘的话,是不分区的。但是应该格式化,用 sys 传送微软的 DOS 系统。
[ Last edited by 不点 on 2007-10-29 at 02:11 PM ]
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-10-29 14:10 |
|
|
frank55555
初级用户
积分 89
发帖 47
注册 2007-4-15
状态 离线
|
『第
13 楼』:
運行匯編序顯示的是
AX=0000 BX=0010 CX=1E3F DX=FX02 SP=FFEE BP=0000 SI=0000 DI=8599
DS=1CF9 EC=F000 SS=1CF9 CS=1CF9 IP=0106
NV UP EI NG NZ AC PO NC
1CF9:0106 CC INT 3
我試了一下,果真是你所說的那個問同題.我用U盤啟動.再到D:下面有一個98啟動盤的文件(FORMAT IO.SYS MSDOS.SYS COMMAND.COM SYS.COM.......)在這里面運行FORMAT A:/S就可以了.
能指示一下,在哪兒可以找到他們有什么不同嗎?比如說用16進制打開是不是分區表不同還是有什么地方不同.
在此非常感謝,
[ Last edited by frank55555 on 2007-10-30 at 12:16 PM ]
|
|
2007-10-30 12:03 |
|
|
不点
银牌会员
不甘寂寞的人
积分 2491
发帖 1115
注册 2003-9-24
状态 离线
|
『第
14 楼』:
祝贺 frank 解决了问题,也感谢你报告的详细信息。
这么一来,就可以排除 CHS 错误引起问题的可能。是啊,毕竟微软的 DOS 是“事实工业标准”,谁也不会轻易让 DOS 不能运行的,除非 DELL。这个公司是微软的“铁哥们”,据说它的新机器只支持 EFI,不再有 BIOS 了,这意谓着大概只有 GRUB2 才能作为它的启动程序,而 GRUB legacy 和等价的 grub4dos,以及以往的 DOS、Windows,都将无法运行了。这可真叫做“一手擎天”。事实上 EFI 是 Intel 发起的,Intel 自己倒不怎么热衷,反而微软和 DELL 对此比较看好。为什么呢?微软正是看中了它“不兼容性”这一(在微软看来)难得的优点,希望借此把旧的硬件、软件一股脑淘汰,达到只让“逐步升级的 WINDOWS 新版”才能运行的目的,从而把所有的软、硬件厂商绑定到微软的篱笆周围。我猜想 DELL 自己应该对 EFI 不会有太大的兴趣,但是,如果微软对其施以威胁、利诱,DELL 很可能不得不就范。其它厂商绝不能向 DELL 学习,如果那么做了,那就是在帮助微软埋葬厂商自己,厂商将永远失去独立自主的能力。这其实也是其它厂商的一个绝好的商机。其它厂商如能发现 DELL 这一弱点,紧抓不放,就有可能一举占领 DELL 的市场。作为业外人士,我本来是可以不用管这些的,但是谁让我的身体里面多了那么一点点正义感,也许再加上眼睛更明亮一些。业内人士更应该看清自己前面的路,不要一失足成千古恨。千万不能在不知不觉中上了别人的圈套,别人让你挖坑,你却不知道那就是叫你埋葬你自己的,而你却心甘情愿去效劳,那样太可悲,惨不忍睹!
究竟微软的铁臂能否把往日的硬件、软件彻底毁灭,我们拭目以待。
=================
Quote: | 能指示一下,在哪兒可以找到他們有什么不同嗎?比如說用16進制打開是不是分區表不同還是有什么地方不同. |
|
这就不得而知了。你已经把旧的毁了,现在也不可能知道了。
GRUB 是按照工业标准来写的。工业标准是微软制定的。所以,每当发生问题,就应该问问,究竟问题是由谁产生的。如果是第三方软件参与其中,那就要问问会不会是它们造成的。
当然,grub4dos 也是第三方工具,所以,问题也可能是由 grub4dos 造成的。微软自己的程序也可能会出现瑕疵,但毕竟微软的用户太多,测试者也太多,所以,这种情况不多见。
因此,我们把微软作为参照物。比如说,某个第三方公司的工具制作了 FAT 系统,虽然微软自己的软件可以正常运行,但是,如果这个 FAT 系统含有潜在问题,那么另外一个第四方工具软件就有可能无法访问这个 FAT 系统。这算是谁的错误?这就很难说了。有可能是第四方工具的责任,也有可能是第三方工具的责任。要具体找出其技术上的原因,给出一个准确的判决,恐怕不是那么容易的。
[ Last edited by 不点 on 2007-10-30 at 05:07 PM ]
|
因为我们亲手创建,这个世界更加美丽。 |
|
2007-10-30 14:31 |
|
|
loveheartrain
初级用户
DOS之迷
积分 174
发帖 81
注册 2007-11-7
状态 离线
|
『第
15 楼』:
建议用UBOOT格式化为63扇区的硬盘格式,然后在在DOS下用DISKGEN重重写主引导纪录,也可以用dsptw在 XP下重建U盘的主引导纪录,因为U盘能不能正常识别为硬盘与MBR有很大关系!
代码如下
ECHO 你选择的硬盘编号是%hd%!以下是该硬盘的分区情况!
dsptw %hd% /l /y
ECHO MMBR 开始重建MBR!
echo 请选择所要的操作。
echo 恢复输入Y 其它键退出
echo 输入后回车执行!
set /p h="">nul
if not %h%'==y' if not %h%'==Y' goto exit
if %h%'==' goto exit
ECHO 重建MBR前备份原来的MBR到文件mbry.bin!
dsptw %hd% 0 1 /s mbry%hd%.bin /y
ECHO 备份完成!
ECHO @
ECHO 正在写入00h ...
dsptw %hd% 0 0 /m /hex:33C08ED0BC007CFB5007501FFC50BE00 /Y
if errorlevel 1 goto err
ECHO 写入00h完成!
ECHO @
ECHO 正在写入10h ...
dsptw %hd% 0 16 /m /hex:7CBF0006B90002F3A4BF1E0657CB33DB /Y
ECHO 写入10h完成!
ECHO @
ECHO 正在写入20h ...
dsptw %hd% 0 32 /m /hex:33D2BEBE07B104F6048074038BD64383 /Y
ECHO 写入20h完成!
ECHO @
ECHO 正在写入30h ...
dsptw %hd% 0 48 /m /hex:C610E2F383FB017409BEC400B91700EB /Y
ECHO 写入30h完成!
ECHO @
ECHO 正在写入40h ...
dsptw %hd% 0 64 /m /hex:719052B441B280BBAA55CD135A81FB55 /Y
ECHO 写入40h完成!
ECHO @
ECHO 正在写入50h ...
dsptw %hd% 0 80 /m /hex:AA7533F6C101742EB80042BEAD07B110 /Y
ECHO 写入50h完成!
ECHO @
ECHO 正在写入60h ...
dsptw %hd% 0 96 /m /hex:C6040046E2FABEAD078BFAC60410C644 /Y
ECHO 写入60h完成!
ECHO @
ECHO 写入70h ...
dsptw %hd% 0 112 /m /hex:0201C74404007C8B5D08895C088B5D0A /Y
ECHO 写入70h完成!
ECHO @
ECHO 正在写入80h ...
dsptw %hd% 0 128 /m /hex:895C0AEB0F90B80102BB007C8BF28B4C /Y
ECHO 写入80h完成!
ECHO @
ECHO 正在写入90h ...
dsptw %hd% 0 144 /m /hex:028A7401B280CD13BEFE7D813C55AA74 /Y
ECHO 写入90h完成!
ECHO @
ECHO 正在写入a0h ...
dsptw %hd% 0 160 /m /hex:09BEDB00B91800EB099033C050B8007C /Y
ECHO 写入a0h完成!
ECHO @
ECHO 正在写入b0h ...
dsptw %hd% 0 176 /m /hex:50CB81C60006ACBB0700B40ECD10E2F6 /Y
ECHO 写入b0h完成!
ECHO @
ECHO 正在写入c0h ...
dsptw %hd% 0 192 /m /hex:B10FE2FC496E76616C69642070617274 /Y
ECHO 写入c0h完成!
ECHO @
ECHO 正在写入d0h ...
dsptw %hd% 0 208 /m /hex:6974696F6E207461626C654D69737369 /Y
ECHO 写入d0h完成!
ECHO @
ECHO 正在写入e0h ...
dsptw %hd% 0 224 /m /hex:6E67206F7065726174696E6720737973 /Y
ECHO 写入e0h完成!
ECHO @
ECHO 正在写入f0h ...
dsptw %hd% 0 240 /m /hex:74656D004D617374657220426F6F7420 /Y
ECHO 写入f0h完成!
ECHO @
ECHO 正在写入100h ...
dsptw %hd% 0 256 /m /hex:5265636F72642057726F746520202120 /Y
ECHO 写入f0h完成!
ECHO @
ECHO 正在写入110h
dsptw %hd% 0 272 /m /hex:627920617879204C6F76652048656172 /Y
ECHO 写入110h完成!
ECHO @
ECHO 正在写入120h ...
dsptw %hd% 0 288 /m /hex:74205261696E20766572323030373132 /Y
ECHO 写入120h完成!
ECHO @
ECHO 写入130h ...
dsptw %hd% 0 304 /m /hex:32372051513A37313231363731360000 /Y
ECHO 写入130h完成!
ECHO @
ECHO 正在写入140h ...
dsptw %hd% 0 320 /m /hex:00000000000000000000000000000000 /Y
ECHO 写入140h完成!
ECHO @
ECHO 正在写入150h ...
dsptw %hd% 0 336 /m /hex:00000000000000000000000000000000 /Y
ECHO 写入150h完成!
ECHO @
ECHO 写入160h ...
dsptw %hd% 0 352 /m /hex:00000000000000000000000000000000 /Y
ECHO 写入160h完成!
ECHO @
ECHO 正在写入170h ...
dsptw %hd% 0 368 /m /hex:00000000000000000000000000000000 /Y
ECHO 写入170h完成!
ECHO @
ECHO 正在写入180h ...
dsptw %hd% 0 384 /m /hex:00000000000000000000000000000000 /Y
ECHO 写入180h完成!
ECHO @
ECHO 正在写入190h ...
dsptw %hd% 0 400 /m /hex:00000000000000000000000000000000 /Y
ECHO 写入190h完成!
ECHO @
ECHO 正在写入1a0h ...
dsptw %hd% 0 416 /m /hex:00000000000000000000000000000000 /Y
ECHO 写入1a0h完成!
ECHO @
ECHO 正在写入1b0h ...
dsptw %hd% 0 432 /m /hex:00000000000000000000000000008001 /Y
ECHO 写入1b0h完成!
ECHO @
ECHO 正在清除2到46扇区的数据 ...
dsptw %hd% 1 45 /e /y
ECHO 清除2到46扇区的数据完成!
ECHO @
ECHO 正在将MBR备份到第2扇区 ...
dsptw %hd% 0 1 /D %hd% 1 /y
ECHO 备份到第2扇区完成!
ECHO @
ECHO 正在将MBR备份到第42扇区 ...
dsptw %hd% 0 1 /D %hd% 41 /y
ECHO 备份到第42扇区完成!
ECHO @
echo 重建MBR完成!
echo 以下是重建后的MBR内容
pause
ECHO 正在将重建后的MBR写到文件mbrx%hd%.bin
dsptw %hd% 0 1 /s mbrx%hd%.bin /y
ECHO 写入完成!
dsptw %hd% 0 1 /l /p /a
goto exit
:err
echo 重建MBR失败!
:exit
pause
然后在安装GRUB4DOS到U盘的主引导纪录.
如果BIOS中有USB模式建议选USB HDD 这样主版会识别为硬盘启动,盘符为C:
我的用手机自带U盘使用自身的格式化系统格式化为FAT16 47扇区128MB
运行GRUB4DOS正常使用.
主板845GV
[ Last edited by loveheartrain on 2007-11-23 at 11:33 PM ]
|
愛意之无尽@灵犀!
QQ:71216716 E_mail:l.h.r.@163.com |
|
2007-11-23 23:30 |
|