ww111222 发表于 2019-5-5 22:01:00

一个意想天开的启动想法,各位大侠别笑话我 :-(


近期 着迷GRUB4DOS,



      我在VM 虚拟机里 做测试,


   把 硬盘分 3个 主分区,


   第1主分区里 GHOST 一个 XP。


   如果 我把 1分区的 XP 复制过 2 主分区,


   如何修改才能 从boot.ini 或 grub4dos 里启动第2主分区里的 XP?



   求指点,

chishingchan 发表于 2019-5-5 23:13:20

克隆系统一般默认安装盘是C盘(虽然我未用过克隆系统),如果复制到D盘那么系统就会出错!
我建议不要把硬盘分区,而是直接挂多个硬盘,每个硬盘是个独立系统。

20121010168 发表于 2019-5-6 15:34:43

可以设置从第N块硬盘的N个分区引导的,坛里就有例程,RUN好像也支持

captain_g 发表于 2019-5-6 15:41:04

以前收藏的东西,挺长,贴出来,太久不用XP了,自己都快搞不懂了。

= = =

在XP/2003系统中,boot.ini文件供启动器NTLDR定位操作系统位置,启动缺省或选定的操作系统;

boot.ini文件具体的内容基本形式如下:


timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows 2003 Sever" /fastdetect
C:\grldr="Grub 4 DOS"


困难部分释义:multi(x)disk(y)rdisk(z)patition(a)或scsi(x)disk(y)rdisk(z)patition(a)

普通个人电脑,多使用IDE磁盘控制器,如也有使用SCSI磁盘控制器,且SCSI磁盘控制器在BIOS中设为Enable(启用),则使用前者这种形式【multi(x)disk(y)rdisk(z)patition(a)】;

若电脑中只有SCSI的磁盘控制器,则使用后者后者这种形式【scsi(x)disk(y)rdisk(z)patition(a)】;

其中,x的值为操作系统boot(预引导、启动)分区所在磁盘在所属磁盘控制器下的磁盘顺序号;

在同一类磁盘控制器下,x从0开始计数,也就是时说当确定磁盘控制器的顺序号以后,减去1就是x的值,只有一块磁盘时就是0;

AA 若前面使用multi(x),则disk(y)无意义,y永远为0;
AA 若前面使用multi(x),则rdisk(z)有意义,z值标识操作系统boot分区所在磁盘在所属磁盘控制器下的磁盘顺序号,z值从0开始计数(0 = 第1块硬盘,1 = 第2块硬盘);
AA 最常见一块硬盘的个人电脑:multi(0)disk(0)rdisk(0)

BB 若前面使用scsi(x),则disk(y)有意义,y值标识操作系统boot分区所在磁盘在所属磁盘控制器下的磁盘顺序号,y值从0开始计数;
BB 若前面使用scsi(x),则rdisk(z)无意义,永远为0;

CC patition(a)中a从1开始计数,标识操作系统boot分区在其所在磁盘中的位置;
CC 一个MBR磁盘最多分为4个基本分区,基本分区包括“主”primary分区和扩展extend分区两种类型,但扩展分区在分割成若干逻辑分区以后才可使用;
CC 也就是说,一个MBR磁盘最多可以有3个主分区 + 1个扩展分区;

DD 确定a值的原则:先数基本分区,数完基本分区之后再数逻辑区(0分配给扩展分区,主分区最多占用1、2、3,依据实际情况,第一个逻辑分区可能是2或者3或者4);

DD 举例,硬盘分了四个基本的分区,依次:第1个基本区为主分区,第2个基本区为主分区,第3个基本区为扩展区(它又被分割成了4个逻辑分区),第4个基本区也是主分区;
DD 续上例,在Windows中,它们依次被标识为:C盘(第1个基本区、主分区)、D盘(第2个基本区、主分区)、E盘(第3个基本区、扩展区)、F盘(第3个基本区、扩展区)、G盘(第3个基本区、扩展区)、H盘(

第3个基本区、扩展区)和I盘(第4个基本区、主分区);

DD 假设boot区(引导文件所在区)为I盘,则a值为3;若为D盘,则a值为2;若为F盘,则a值为5;若为G盘,则a值为6;若为H盘,则a值为7【0分配给扩展分区,主分区占用1(C)、2(D)、3(I),逻辑分区从4(E)开始计数】



简单情形:1块IDE硬盘,一个主分区、一个扩展分区分割成三个逻辑分区,即在WINDOWS中看起来有C、D、E、F四个分区。以XP系统为例,Windows文件夹分别在C、D、E、F盘中,则a=1/2/3/4;
复杂一点:2块IDE硬盘,第2块硬盘分区情形:一个主分区、一个扩展分区分割三个逻辑分区,假设为G、H、I、J四个分区。以XP系统为例,Windows文件夹分别在G、H、I、J盘中,则a=1/2/3/4,但rdisk(z)必须为rdisk

(1);

EE 斜杠“\”后面的内容表示操作系统根目录在这个分区下的相对路径和系统文件夹名;
EE 微软早期的MBR只搜索“活动”主分区中的“启动器”(如NTLDR)。因此,以XP系统为例,NTLDR/BOOT.INI/NTDETECT.COM这3个文件必须放在“活动”主分区中才能“引导(boot)”系统,但这几个文件可以和Windows文

件夹“不”在同一个分区中!
EE 如不在同一个分区中,电脑启动进入Windows系统后,它们所在的分区,如不特地“挂载”,是无法访问的。

进入Windows系统后,Windows文件夹所在的分区总是被指定为“C”盘(在WINPE系统中,为“X”盘)。

开机时,电脑总是根据BIOS的设置,选择从第1块(0号)硬盘启动,因此当有不止1块硬盘时,NTLDR/BOOT.INI/NTDETECT.COM 这几个文件必须放在第1硬盘的活动主分区中,但这并不影响Windows分区位于何处(例如

,可以放在第2硬盘中);

开机时如按(如F12)功能键选择从第2硬盘启动,则第2硬盘上必须有活动主分区和 NTLDR/BOOT.INI/NTDETECT.COM 这几个文件;

当系统中不止1块硬盘时,应避免存在不止一个活动主分区。为稳定起见,启动文件与活动主分区始终应在第1硬盘上,即电脑始终从第1硬盘启动,然后通过boot.ini配置来选择启动第1或第2硬盘中的XP/2003操作系统。

启动电脑时可以先直接进G4D环境,然后通过G4D菜单选择启动硬盘中的XP/2003操作系统,但NTLDR/BOOT.INI/NTDETECT.COM 这几个文件仍然是必须的,同时它们应该放在“活动”主分区中,未激活的可以用

makeactive“激活”相应的主分区。因具体情况多变,可以通过chainloader (hd0)+1从第1硬盘启动(不止1块硬盘的可能需要映射交换磁盘),也可以通过chainloader /ntldr来加载 ntldr 文件启动系统,或者还可以用chainloader

(hd0,0)+1来加载启动第1硬盘第1主分的第1扇区。菜单举例一则:

title Windows NT/2K/XP/2003
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr

关键一点,为了方便易行,避免折腾,硬盘分区一定要简单!

有阴也有阳 发表于 2019-5-6 17:44:59

本帖最后由 有阴也有阳 于 2019-5-7 09:32 编辑

1.用NTBOOTautofix(多系统引导修复工具)修复这三个分区的XP启动项,否则D、E盘的XP启动会报错。

2.

a.启动C盘的XP:

find --set-root /ntldr

chainloader(hd0,0) /ntldr

boot


b.启动D盘的XP:

find --set-root /ntldr

chainloader(hd0,1) /ntldr

boot


c.启动E盘的XP:

find --set-root /ntldr

chainloader(hd0,2) /ntldr

boot


这种写法正不正确,我也没有把握,我也好久没有倒腾grub4dos了。

NTBOOTautofix(多系统引导修复工具)的下载地址:http://forspeed.onlinedown.net/down/NTBOOTAutoFix.zip

vaf 发表于 2019-5-6 18:03:17

不在于怎样,谁能启动多少系统。
而在于这个系统能从哪里启动。
不在于你在哪里我也能启动你。
而在于我在这里你启动我我不能启动。
不在于你能启动 A - Z 上的任何系统。
而在于我 (系统)不能在任何地方启动,只能在特定的位置才能启动。

hilsonma 发表于 2019-5-11 07:06:03

本帖最后由 hilsonma 于 2019-5-11 07:16 编辑

就我所知,boot.ini 不能启动第二主分区里的 XP 。如下修改可启动D盘的XP:

timeout=5
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect


grub4dos 启动第二主分区里的 XP :
先用bootice把硬盘主引导记录改为grub4dos
再把第二主分区的ntldr 改名为ntldr2
最后修改grub4dos 菜单如下:
title XP1
    find --set-root --ignore-floppies --ignore-cd /ntldr
    map () (hd0)
    map (hd0) ()
    map --rehook
    find --set-root --ignore-floppies --ignore-cd /ntldr
    chainloader /ntldr
title XP2
    find --set-root --ignore-floppies --ignore-cd /ntldr2
    map () (hd0)
    map (hd0) ()
    map --rehook
    find --set-root --ignore-floppies --ignore-cd /ntldr2
    chainloader /ntldr2

我没有试过,不知道是否需要激活第二主分区,如果XP2 启动不成功的话就加上激活分区命令如下:
title XP2
    find --set-root --ignore-floppies --ignore-cd /ntldr2
    map () (hd0)
    map (hd0) ()
    map --rehook
    find --set-root --ignore-floppies --ignore-cd /ntldr2
    makeactive
    chainloader /ntldr2

jackyd1999 发表于 2019-5-24 15:15:30

曾经5个分区都装了系统 ,1个10,3个W7,不过XP还是装在了c盘。
页: [1]
查看完整版本: 一个意想天开的启动想法,各位大侠别笑话我 :-(