Windows下boot.ini详解
[ 2008/10/27 12:36 | by selboo ]
Boot.ini文件是引导多系统启动时提供了很多的参数命令,配置这些启动参数可以得到不同的启动效果。这个文件分为引导加载部分(boot loader)和操作系统部分(operating systems)两大块。
在引导加载部分,timeout=xx表示等待用户选择操作系统的时间,默认是30秒;default=xxxxx表示缺省情况下系统默认要加载的操作系统路径,表现为启动时等待用户选择的高亮条部分。
在操作系统部分,则列出了所有的操作系统路径和清单,以供用户选择。
default=multi(0)disk(0)rdisk(0)partition(1)代表的是什么呢?
Multi表示一个非SCSI硬盘或一个由SCSI BIOS访问的SCSI硬盘,(x)是硬件适配卡序号;disk(x)表示SCSI总线号,即如果硬件适配卡为Multi,其正确表示方法就为disk(0);rdisk(x)表示硬盘的序号,即如果硬件适配卡为SCSI则忽略此值;partition(x)表示硬盘的分区序号。
我们还发现/fastdect的选项,这些都是开关符。
controller()disk()rdisk()partition()\systemroot="menu listing"
controller():接口类型
有三个可能的情况:
(1) multi() 表明IDE驱动器和SCSI驱动器带有内置BIOS。数字表示IDE或是SCSI控制器的顺序ID。如果2000安装在“从IDE控制器”上,为multi(1)。
(2) scsi() 表明SCSI不带有内置BIOS或BIOS被禁用。这一项来自NT,在2000中没有意义了。
(3) signature() 表明驱动器不能通过标准INT13来访问,需要Ntldr特殊处理。
disk():SCSI ID
disk()和上述的scsi()来指出引导文件所在的SCSI ID。而对于2000来说,对于控制器类型为multi的,disk的数值始终为0。
rdisk():相对磁盘定位
rdisk()和multi()联合指出磁盘位置。对于IDE驱动器,相对磁盘定位有“主/从”之分。例如,第一IDE控制器上的从盘ARC路径名为multi(0)disk(0)rdisk(1)。对于SCSI驱动器来说,相对磁盘位置由POST过程中SCSI POST进行的设备扫描确定。对于signature()控制器来说,rdisk()始终为0。
partition():引导分区序号
这个没什么好说的,就是引导分区序号。注意,这个序号从1开始,而不是从0开始。
\systemroot:就是系统目录
"menu listing":菜单文字。基本没用。
boot.ini 详解
只要在电脑上装了 Windows 2000/XP,就会在C盘根目录下产生一个boot.ini文件,它是你的系统的引导信息文件,在里面你可以看到电脑上装有什么系统,各个系统的位置,以及其他一些信息。下面就让我们来看看这个文件以及相关的信息吧。
Windows NT在BOOT.INI中采用了称为高级RISC计算机(Advanced RISC COMPUTER,ARC)的跨平台标准格式来表示路径。一个遵循ARC规范的路径名有下表中的参数组成:
scsi(x)或multi(x) 标识硬盘适配器 disk(y) SCSI总线号:如果是 multi 则总为0 rdisk(z) multi的物理驱动器号;如果是scsi则忽略 partition 逻辑分区号 前三个参数是以0为基的,也就是说,第一个IDE物理驱动器是rdisk(0), 而第二个则是rdisk(1)。然而不同的是,partition却是基于1的,因此第一个驱动器上的第一个分区是rdisk(0)partition(1)。 路径必须提供所有的参数,不能省略任何参数。例如, multi(0)disk(0)rdisk(0)partition(1)是一个有效参数,尽管这里的 disk(0) 没有代表任何意义,因此,multi(0)rdisk(0)partition(1) 是无效路径。 第一个参数几乎总是 multi,即使是SCSI控制器也总是使用 multi 。在boot. ini 文件中使用scsi的唯一一种情况是,SCSI控制器上的BIOS是关掉的。在这种情况下,系统分区的根目录中有一个附加的隐藏只读文件系统NTBOOTDD.SYS。 NTBOOTDD.SYS是一个访问这种没有BIOS的SCSI控制器的设备驱动程序,或者 也可以作为不使用INT13标识硬盘的SCSI控制器的驱动程序。
下面让我们看一个实例:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
C:\=Microsoft Windows
这个文件表示这台机器装有双系统,默认引导的系统是windows2000
第二行 timeout=30 表示显示开机时选择操作系统的等待时间是30秒;default=multi(0)disk(0)rdisk(0)partition(2)\WINNT 表示默认引导的系统是WINNT;[operating systems]这一行下面是操作系统列表;multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect (请参照上面的解释)表示的意思是第一个IDE硬盘上(rdisk(0))的第二个分区(partition(2))上装有Windows 2000; C:\=Microsoft Windows 表示C盘上装有其它的windows操作系统(9X,me)。
以下的方法只适用于一下操作系统 Microsoft Windows 2000 Advanced Server ,Microsoft Windows 2000 Datacenter Server ,Microsoft Windows 2000 Professional ,Microsoft Windows 2000 Server 对于其它操作系统则没试过。
我们知道Windows 2000在启动时如果按F8的话,会出来让我们选择的是否进入安全模式的选项的,但是如果你需要经常进入安全模式的话,每次这样做很麻烦。现在让我们看看如何修改boot.ini来使你直接进入安全模式。
模式 开关(Switch)
安全模式 /safeboot:minimal /sos /bootlog /noguiboot
带有网络的安全模式 /safeboot:network /sos /bootlog /noguiboot
带有命令行的安全模式 /safeboot:minimal(alternateshell) /sos /bootlog /noguiboot
启用日志 /bootlog
启用VGA模式 /basevideo
目录服务恢复模式 /safeboot:dsrepair /sos
调试模式 /debug
使用“带命令行提示的安全模式”开关的boot.ini例子:
[boot loader]
timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server" /fastdetect /SAFEBOOT:MINIMAL(ALTERNATESHELL)
注意: /sos /bootlog /noguiboot 开关对上面任何一个设置都不是必须的,但是它们有助于找到错误。当你按下F8,并选择其中一个模式的时候,那些开关是包含在里面的。
在引导加载部分,timeout=xx表示等待用户选择操作系统的时间,默认是30秒;default=xxxxx表示缺省情况下系统默认要加载的操作系统路径,表现为启动时等待用户选择的高亮条部分。
在操作系统部分,则列出了所有的操作系统路径和清单,以供用户选择。
default=multi(0)disk(0)rdisk(0)partition(1)代表的是什么呢?
Multi表示一个非SCSI硬盘或一个由SCSI BIOS访问的SCSI硬盘,(x)是硬件适配卡序号;disk(x)表示SCSI总线号,即如果硬件适配卡为Multi,其正确表示方法就为disk(0);rdisk(x)表示硬盘的序号,即如果硬件适配卡为SCSI则忽略此值;partition(x)表示硬盘的分区序号。
我们还发现/fastdect的选项,这些都是开关符。
controller()disk()rdisk()partition()\systemroot="menu listing"
controller():接口类型
有三个可能的情况:
(1) multi() 表明IDE驱动器和SCSI驱动器带有内置BIOS。数字表示IDE或是SCSI控制器的顺序ID。如果2000安装在“从IDE控制器”上,为multi(1)。
(2) scsi() 表明SCSI不带有内置BIOS或BIOS被禁用。这一项来自NT,在2000中没有意义了。
(3) signature() 表明驱动器不能通过标准INT13来访问,需要Ntldr特殊处理。
disk():SCSI ID
disk()和上述的scsi()来指出引导文件所在的SCSI ID。而对于2000来说,对于控制器类型为multi的,disk的数值始终为0。
rdisk():相对磁盘定位
rdisk()和multi()联合指出磁盘位置。对于IDE驱动器,相对磁盘定位有“主/从”之分。例如,第一IDE控制器上的从盘ARC路径名为multi(0)disk(0)rdisk(1)。对于SCSI驱动器来说,相对磁盘位置由POST过程中SCSI POST进行的设备扫描确定。对于signature()控制器来说,rdisk()始终为0。
partition():引导分区序号
这个没什么好说的,就是引导分区序号。注意,这个序号从1开始,而不是从0开始。
\systemroot:就是系统目录
"menu listing":菜单文字。基本没用。
boot.ini 详解
只要在电脑上装了 Windows 2000/XP,就会在C盘根目录下产生一个boot.ini文件,它是你的系统的引导信息文件,在里面你可以看到电脑上装有什么系统,各个系统的位置,以及其他一些信息。下面就让我们来看看这个文件以及相关的信息吧。
Windows NT在BOOT.INI中采用了称为高级RISC计算机(Advanced RISC COMPUTER,ARC)的跨平台标准格式来表示路径。一个遵循ARC规范的路径名有下表中的参数组成:
scsi(x)或multi(x) 标识硬盘适配器 disk(y) SCSI总线号:如果是 multi 则总为0 rdisk(z) multi的物理驱动器号;如果是scsi则忽略 partition 逻辑分区号 前三个参数是以0为基的,也就是说,第一个IDE物理驱动器是rdisk(0), 而第二个则是rdisk(1)。然而不同的是,partition却是基于1的,因此第一个驱动器上的第一个分区是rdisk(0)partition(1)。 路径必须提供所有的参数,不能省略任何参数。例如, multi(0)disk(0)rdisk(0)partition(1)是一个有效参数,尽管这里的 disk(0) 没有代表任何意义,因此,multi(0)rdisk(0)partition(1) 是无效路径。 第一个参数几乎总是 multi,即使是SCSI控制器也总是使用 multi 。在boot. ini 文件中使用scsi的唯一一种情况是,SCSI控制器上的BIOS是关掉的。在这种情况下,系统分区的根目录中有一个附加的隐藏只读文件系统NTBOOTDD.SYS。 NTBOOTDD.SYS是一个访问这种没有BIOS的SCSI控制器的设备驱动程序,或者 也可以作为不使用INT13标识硬盘的SCSI控制器的驱动程序。
下面让我们看一个实例:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
C:\=Microsoft Windows
这个文件表示这台机器装有双系统,默认引导的系统是windows2000
第二行 timeout=30 表示显示开机时选择操作系统的等待时间是30秒;default=multi(0)disk(0)rdisk(0)partition(2)\WINNT 表示默认引导的系统是WINNT;[operating systems]这一行下面是操作系统列表;multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect (请参照上面的解释)表示的意思是第一个IDE硬盘上(rdisk(0))的第二个分区(partition(2))上装有Windows 2000; C:\=Microsoft Windows 表示C盘上装有其它的windows操作系统(9X,me)。
以下的方法只适用于一下操作系统 Microsoft Windows 2000 Advanced Server ,Microsoft Windows 2000 Datacenter Server ,Microsoft Windows 2000 Professional ,Microsoft Windows 2000 Server 对于其它操作系统则没试过。
我们知道Windows 2000在启动时如果按F8的话,会出来让我们选择的是否进入安全模式的选项的,但是如果你需要经常进入安全模式的话,每次这样做很麻烦。现在让我们看看如何修改boot.ini来使你直接进入安全模式。
模式 开关(Switch)
安全模式 /safeboot:minimal /sos /bootlog /noguiboot
带有网络的安全模式 /safeboot:network /sos /bootlog /noguiboot
带有命令行的安全模式 /safeboot:minimal(alternateshell) /sos /bootlog /noguiboot
启用日志 /bootlog
启用VGA模式 /basevideo
目录服务恢复模式 /safeboot:dsrepair /sos
调试模式 /debug
使用“带命令行提示的安全模式”开关的boot.ini例子:
[boot loader]
timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server" /fastdetect /SAFEBOOT:MINIMAL(ALTERNATESHELL)
注意: /sos /bootlog /noguiboot 开关对上面任何一个设置都不是必须的,但是它们有助于找到错误。当你按下F8,并选择其中一个模式的时候,那些开关是包含在里面的。
修复Linux引导程序
[ 2008/08/21 10:44 | by selboo ]
我在Windows下使用使用硬盘ISO装Linux(Fedora),用Grub for DOS来进行引导安装(参见:http://wintys.blog.51cto.com/425414/93927).装好后一切正常。有一天我的Windows系统重装了,这时也无法进入Linux了。这就需要重新引导Linux了。步骤如下:
1.
下载Grub for DOS(引导多系统):
http://sourceforge.net/project/showfiles.php?group_id=104188
下载explore2fs(从Windows提取Linux启动文件):
http://www.chrysocome.net/explore2fs
2.
安装Grub for DOS.
将Grub解压到C盘根目录.
3.
修改C:\boot.ini,最后面添加这么一行,C:\grldr="GRUB For Dos",保存后退出.
4.
使用explore2fs提取Fedora 文件,然后从文件/grub/menu.lst中找到引导信息:
title Fedora (2.6.25-14.fc9.i686)
root (hd0,0)
kernel /vmlinuz-2.6.25-14.fc9.i686 ro root=UUID=88fae061-9e2e-4f6b-bb13-f95fae8ea928 rhgb quiet
initrd /initrd-2.6.25-14.fc9.i686.img
5.
修改C:\boot\grub\menu.lst,
将刚才提取的信息添加到menu.lst文件中,根据需要修改:
title Fedora9
root (hd1,0)
kernel /vmlinuz-2.6.25-14.fc9.i686 ro root=UUID=88fae061-9e2e-4f6b-bb13-f95fae8ea928 rhgb quiet
initrd /initrd-2.6.25-14.fc9.i686.img
注:因为我有两块硬盘,Winodos装在第一块硬盘上,而Fedora装在第二块硬盘上,
所以root(hd0,0)修改为root(hd1,0)