dannycat 发表于 2004-7-4 23:19:08

问题在这里:
/dev/hda1 1 770 6184993+ 1b Hidden W95 FAT32

你用PQMAGIC之类的改的分区吧?
然后激活了LINUX分区?

再用PQMAGIC把“Hiddeen W95 FAT32”给“Unhidden”了
然后再引导(hd0,0)

hejux 发表于 2004-7-4 23:23:41

我用cat MyPartitionTable.txt | sfdisk --no-reread -H255 /dev/hda 把改后的txt中的内容写到命令后(就是把"警告"去处后的TXT)

但是用命令sfdisk -d /dev/hda > MyPartitionTable.txt后发现txt的内容还是和没改一样

我想应该不是直接把"警告"删掉就完事了吧,会不会是要修改其内容一直到用sfdisk -d /dev/hda > MyPartitionTable.txt命令后的输出结果没有错误为止?


你所有的问题都问得好

呵呵

高手就是这样炼成的!

flycity 发表于 2004-7-4 23:25:08

你的问题答得好,“钢铁就是这样连成的“,

kaizen 发表于 2004-7-4 23:25:50

我现在只能在linux下,PQMAGIC能用吗?还有这方法危险吗?
我的gurb.conf里面windows的引导是
Rootnoverify(hd0,4)
Chainloader +1
不是
Rootnoverify(hd0,0)
Chainloader +1
这该怎么半?

cee1 发表于 2004-7-5 12:52:49

应该不要;grub的引导没有错,不用改
先用sfdisk -d /dev/hda > MyPartitionTable.txt;编辑(去错误信息)
再用cat MyPartitionTable.txt | sfdisk --no-reread -H255 /dev/hda
显示是什么?
我尝试时,发现MyPartitionTable.txt里没有错误信息(可能在故障恢复控制台里用修复磁盘命令搞糟了),用cat MyPartitionTable.txt | sfdisk --no-reread -H255 /dev/hda 结果报错。所以对“编辑”很疑惑(是因为在故障恢复控制台里用修复磁盘命令搞糟了,还是因为“编辑方法”不止如此

kaizen 发表于 2004-7-5 12:59:29

# cat /root/mpt.txt | sfdisk --no-reread -H255 /dev/hda Warning: HDIO_GETGEO says that there are 16 heads

Disk /dev/hda: 77545 cylinders, 255 heads, 63 sectors/track
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/hda1 0+ 769 770- 6184993+ 1b Hidden W95 FAT32
/dev/hda2 770 3491 2722 21864465 f W95 Ext'd (LBA)
/dev/hda3 * 3492 4798 1307 10498477+ 83 Linux
/dev/hda4 4799 4864 66 530145 82 Linux swap
/dev/hda5 770+ 2125 1356- 10892038+ b W95 FAT32
/dev/hda6 2126+ 3491 1366- 10972363+ b W95 FAT32
New situation:
Units = sectors of 512 bytes, counting from 0

Device Boot Start End #sectors Id System
/dev/hda1 63 12370049 12369987 1b Hidden W95 FAT32
/dev/hda2 12370050 56098979 43728930 f W95 Ext'd (LBA)
/dev/hda3 * 56098980 77095934 20996955 83 Linux
/dev/hda4 77095935 78156224 1060290 82 Linux swap
/dev/hda5 12370113 34154189 21784077 b W95 FAT32
/dev/hda6 34154253 56098979 21944727 b W95 FAT32
Successfully wrote the new partition table

Re-reading the partition table ...
BLKRRPART: 设备或资源忙
The command to re-read the partition table failed
Reboot your system now, before using mkfs

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk( 8 ). )
*****************
而且再用sfdisk -d /dev/hda > MyPartitionTable.txt时发现和刚才没有改过一样,还是有开始的那一段警告,好象cat MyPartitionTable.txt | sfdisk --no-reread -H255 /dev/hda 没有起作用??

chen1983 发表于 2004-7-5 13:11:13

系统好了没有,按照上面的方法应该是可行的啊

cee1 发表于 2004-7-5 13:22:57

# cat /root/mpt.txt | sfdisk --no-reread -H255 /dev/hda Warning: HDIO_GETGEO says that there are 16 heads

Disk /dev/hda: 77545 cylinders, 255 heads, 63 sectors/track
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/hda1 0+ 769 770- 6184993+ 1b Hidden W95 FAT32
/dev/hda2 770 3491 2722 21864465 f W95 Ext'd (LBA)
/dev/hda3 * 3492 4798 1307 10498477+ 83 Linux
/dev/hda4 4799 4864 66 530145 82 Linux swap
/dev/hda5 770+ 2125 1356- 10892038+ b W95 FAT32
/dev/hda6 2126+ 3491 1366- 10972363+ b W95 FAT32
New situation:
Units = sectors of 512 bytes, counting from 0

Device Boot Start End #sectors Id System
/dev/hda1 63 12370049 12369987 1b Hidden W95 FAT32
/dev/hda2 12370050 56098979 43728930 f W95 Ext'd (LBA)
/dev/hda3 * 56098980 77095934 20996955 83 Linux
/dev/hda4 77095935 78156224 1060290 82 Linux swap
/dev/hda5 12370113 34154189 21784077 b W95 FAT32
/dev/hda6 34154253 56098979 21944727 b W95 FAT32
Successfully wrote the new partition table

Re-reading the partition table ...
BLKRRPART: 设备或资源忙
The command to re-read the partition table failed
Reboot your system now, before using mkfs

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk( 8 ). )
*****************
而且再用sfdisk -d /dev/hda > MyPartitionTable.txt时发现和刚才没有改过一样,还是有开始的那一段警告,好象cat MyPartitionTable.txt | sfdisk --no-reread -H255 /dev/hda 没有起作用??
顺序应该是先用sfdisk -d /dev/hda > mpt.txt
去掉警告,再用cat /root/mpt.txt | sfdisk --no-reread -H255 /dev/hda
另外,你有没有改txt其他的地方(安全期间,还是只去掉报错)

kaizen 发表于 2004-7-5 15:55:45

我这样做了,但是你看这句:
Re-reading the partition table ...
BLKRRPART: 设备或资源忙
The command to re-read the partition table failed
Reboot your system now, before using mkfs

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk( 8 ). )
很明显没有成功嘛,而且再次用sfdisk -d /dev/hda > MyPartitionTable.txt后,里面的内容根本没有改变

kaizen 发表于 2004-7-5 18:10:27

不行啊ceel,把ntldr替换后,仍然不能登陆windows,提示是大意是Xmont (不知道写没有写对)没有找到,还有一个什么auto...什么的没有找到,然后就重起了.

另外有一点:以前我开机后启动菜单有windows和dos两个选项,但是现在点other后,就直接看见windows的徽标了.更本不能选dos

xtjxj 发表于 2004-7-6 19:14:01

转载Linux技术中坚站的一篇文章,不知道有没有效果
http://www.chinalinuxpub.com/vbbforum/showthread.php?s=&threadid=36463

这个问题我已经遇到n次了,至少重装了10次WinXP,只要装了FC2j就无法通过grub引导XP,而且重装XP也不行,计算机会提示Missing Operating System

必须用dos的fdisk删除整个硬盘的分区,然后重新创建

通过搜索google证实这是bug,对于因为安装了FC2导致windows无法起动的用户可以用下面的步骤修复分区表
1首先用FC的光盘引导进入修复模式
BOOT: linux rescue
2 进入控制台后执行
# sfdisk -d /dev/hda | sfdisk --no-reread -H255 /dev/hda

如果提示Device Busy

加上--force参数即可

# sfdisk -d /dev/hda | sfdisk --no-reread -H255 /dev/hda --force

然后重启就可以通过grub引导xp了,使用diskgen等分区管理软件也不回报分区叠加的错误了。

kaizen 发表于 2004-7-7 09:21:51

为什么我输入# sfdisk -d /dev/hda | sfdisk --no-reread -H255 /dev/hda 出现下面的提示:
Sfdisk: unrecognized input:exetendied partition dpes not start at cylinder boundary
看看这个(fdisk -l ):
Device Boot Start End Blocks Id System
/dev/hda1 1 770 6184993+ 1b Hidden W95 FAT32//(为什么是隐藏的)
/dev/hda2 771 3492 21864465 f W95 Ext'd (LBA)
/dev/hda3 * 3493 4799 10498477+ 83 Linux
/dev/hda4 4800 4865 530145 82 Linux swap
/dev/hda5 771 2126 10892038+ b W95 FAT32
/dev/hda6 2127 3492 10972363+ b W95 FAT32

-------------------------------------------------------
我的情况是不是有什么不同,我是在已有xp的情况下将windows中的F盘删除,然后用pQ将其划为主分区,然后再在上面安装FC2的
另外,这个命令在进入图形界面的后用终端执行可以吗,就是不在linux rescue 下

kaizen 发表于 2004-7-7 16:38:47

windows徽标后的两句错误信息是
Xmnt2002 program not fand---(记不住了)
autochk program not fand----(记不住了)
会不会系统启动时要到C盘找这两个东西,但是我的c盘盘符变成了F(或者是隐藏了),所以就找不到
___________________________
还有个问题,我一点Other(Grub)中就直接看见了windows的徽标,在看见徽标前本来应该有winxp和DOS两个选项的,以后就算windows可以启动了,是不是也看不见DOS和windows的起动菜单了?

xtjxj 发表于 2004-7-7 19:21:27

你理解错了。干脆我把过程写出来吧。
1、sfdisk -d /dev/hda > MyPartitionTable.txt
2、编辑MyPartitionTable.txt文件,去掉开始的错误信息,保存。
3、cat MyPartitionTable.txt | sfdisk --no-reread -H255 /dev/hda
   注释:上面的命令打全再回车。就是把MyPartitionTable.txt的内容当作sfdisk的输入。
这个是那篇英文文章写的。实际效果我不清楚,不知道能否行得同?

已经搞定了!!!在终端运行以下命令(就是鼠标对桌面点击右键出现[打开终端])
1、sfdisk -d /dev/hda > MyPartitionTable.txt
2、编辑MyPartitionTable.txt文件,去掉开始的错误信息,保存。(MyPartitionTable.txt文件在root的主目录下面)
去掉开始的错误命令后应该是这样的形式:
# partition table of /dev/hdb
unit: sectors

/dev/hdb1 : start= 63, size= 10251297, Id= b, bootable
/dev/hdb2 : start= 10251360, size= 67919040, Id= f
/dev/hdb3 : start= 0, size= 0, Id= 0
/dev/hdb4 : start= 0, size= 0, Id= 0
/dev/hdb5 : start= 30739023, size= 47431377, Id= b
/dev/hdb6 : start= 10251486, size= 409122, Id=83
/dev/hdb7 : start= 10660671, size= 19046097, Id=83
/dev/hdb8 : start= 29706831, size= 1032129, Id=82

3、cat MyPartitionTable.txt | sfdisk --no-reread -H255 /dev/hda


上面红色的hda要改成自己的,不要照搬,试试看.还有一定要打开可以查看隐含文件的选项,因为你编辑一个文件后,他还会创造一个副本,副本还是和没有修改一样
,所以一定要删除副本,千万不要修改/boot/grub/grub.conf文件,没效果

xtjxj 发表于 2004-7-7 19:25:32

这是打开可以查看隐含文件选项的图
页: 1 2 3 4 [5] 6
查看完整版本: vwinxp无法启动了(在线等)急啊!!!