
本人菜鸟一个昨天刚装上红旗,大家表笑话俺。先说明下分区情况,C盘DOS,D盘3G为XP,NTFS,E盘11.2G,NTFS,F盘500M,FAT32,留下4G多没分区。根分区/hda3是3.6G,SWAP是400多M(刚才听说是32M的倍数,否则也是浪费)grub引导的放在MBR里,现在的问题是只有XP进不去,提示说:下列文件丢失或损坏,无法启动,
这已经是第二次装了,第一次安装时用默认的,第二次时Windows对应的改成hda1还是hda5想不清了,反正一次是1一次是5。
XP下这个文件明明存在的,看了下BOOT.INI是正常的呀。
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\ = "DOS"
以下是网上找的解决方法:
A: 安装并没有就这样结束,问题当然随之而来。我发现grub虽然可以正常引导NTLDR,但NTLDR只能正常引导windows 98SE,而当选择windows XP的时候,系统提示"下列文件丢失或损坏导致了系统启动失败,system32hal.dll,建议重新拷贝文件或安装文件"。这样的启动失败,我相信我并不是第一个遇到,惯用的方法,我通常是往两个方向去的。第一个,当然是拷贝啦,我从家里另外的一台windows XP系统下拷贝了hal.dll文件过路,只是我发现,好象这两个hal.dll的文件大小,并不一样......结果当然是不行啦,幸好我没有"覆盖"操作的习惯,我只是先把原来系统下的hal.dll改名为hal-old.dll了,马上改回去后,另想办法!另外一条路,我喜欢借助google。
Google很快就告诉我答案了。事实上,这样的错误提示一般回出现在引导系统无法发现hal.dll的时候会出现,并非真的已经损坏或丢失。也就是说,NTLDR已经找不到hal.dll在哪里了。为什么会这样呢?我想到了改变的硬盘分区。当然了,原来NTLDR的配置文件boot.ini(这个文件可以在C的根目录下找到,是隐藏的)是这样的----
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional For IBM ThinkPad" /fastdetect
C:\=Microsoft Windows 98 ThirdEdition For IBM ThinkPad
这时候装在D盘的windows XP位置是multi(0)disk(0)rdisk(0)partition(2),当我在multi(0)disk(0)rdisk(0)partition(1)(也就是C盘)后面硬是划了SWP区和hda3出来,XP的位置当然要往后推啦,正确的boot.ini应该是----
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(4)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(4)\WINDOWS="Microsoft Windows XP Professional For IBM ThinkPad" /fastdetect
C:\=Microsoft Windows 98 ThirdEdition For IBM ThinkPad
可能很多初学者会把SWP忽略,记得要算上它啊!我在windows 98SE下用记事本改动后保存,成功了!本来以为windows系统认不到ext3文件系统格式的,谁知windows XP那么多事......
B、方法看起来不错,可惜用的的lilo的。
7、问:我的电脑上原来已经装有Win2000,装2000的C盘用的是NTFS格式,而其他盘用的是Fat32格式的。后来我又装了Red Had 7.1,装完以后linux能进去,windows却不能进了,请问是什么回事,该怎么解决呢?
答:这里首先要介绍一下Linux系统设备的命名规则。在Linux里,各种设备和分区的命名方法完全不同于Dos,软驱,硬盘以及硬盘分区都有各自的设备特殊文件,例如:
/dev/hda 表示第一个IDE硬盘(整个)
/dev/hda1 表示第一个硬盘的第一个主分区
/dev/hda2 表示第一个硬盘的第二个主分区
/dev/hda3 表示第一个硬盘的扩展分区
/dev/hda5 表示第一个硬盘的第一个逻辑分区
/dev/hda6 表示第一个硬盘的第二个逻辑分区
/dev/hdb 表示第二个硬盘(整个)
其中hda1对应着Windows里的C盘,而hda5一般对应着Windows的D盘。在linux安装的时候安装程序会自动寻找windows操作系统所在的分区,因为这里我们把C盘设成了NTFS格式的,有些linux安装程序不认这个格式,就把其他fat32格式的盘当作windows的启动盘了,这里应该就是这种情况。
解决的办法也很简单,只要以root身份登陆linux,用文本编辑器打开在/etc目录下的lilo.conf,找到
other=/dev/hda5
optional
label=dos
这一段,把hda5(也可能hda6或其他)改成hda1,存盘,然后运行一遍lilo命令,重新启动,问题应该就能解决了。
老大们,帮帮菜鸟吧。
B4C4 于 2005-08-04 09:56:35发表:
这下知道了,是分成3个主分区了吧。
B4C4 于 2005-08-04 09:49:31发表:
解决了,刚才把partition(2)改成3不行,改到4,OK了,HOHO,不过不明白为会什么是4呀。
B4C4 于 2005-08-04 09:12:43发表:
图没上去,再发