返回信息流看到版上许多人有类似困扰,于是写了此文,希望对大家有所帮助。
转载请署名:cdarling。讨论请直接回复本贴。支持请访问http://cdarling.me
本文写一些思路,因为具体命令我不能保证完全记得。根据思路稍微搜索一下引擎一下有就了。
1.相互引导
Windows xp的启动是在C盘的boot.ini。这个文件是隐藏+系统的。想改它的话,可以在“我的电脑”属性里找到改,也可以打开cmd,cd到c盘根目录,写attrib boot.ini –s –h –r,就能改了,改完再attrib boot.ini +s +h +r就行了。如果想用xp启动grub4dos就下载一个grub4dos然后把grldr文件放到C盘,然后在boot.ini里加一项:c:\grldr=”GRUB”就行了。也可以把它设置成默认,可以改选择的等待时间(一看就懂)。
用win7或者vista就是用bootmgr启动了。需要用管理员权限的bcdedit来改。开始菜单里写cmd点右键就有用管理员权限启动了。想要用bootmgr启动grub4dos,需要把grub4dos压缩包里的grldr.mbr和grldr放到C盘。bcdedit /create /d “grub” /application bootsector。这时产生了一个guid,把它复制下来。复制的方法是点右键,标记,选中后按回车,就复制完了。(之后点右键,点粘贴,或者按字母p,就粘上了。)这里用{grldr}来表示刚产生的guid。bcdedit /set {grldr} device partition=C:,bcdedit /set {grldr} path \grldr.mbr,bcdedit /displayorder {grldr} /addlast,bcdedit /timeout 2。这样就有了它的启动项了。如果是启动xp的boot.ini,也可以用它:(来自:http://technet.microsoft.com/en-us/library/cc721886(WS.10).aspx)
Create a BCD entry for the older operating system by specifying the following. Bcdedit.exe is located in the \Windows\System32 directory of the Windows Vista partition. Description is the description of the new entry for the older operating system.
Bcdedit /create {legacy} /d “Description”
Bcdedit /set {legacy} device boot
Bcdedit /set {legacy} path \ntldr
Bcdedit /displayorder {legacy} /addlast
启动到grub4dos之后,也可以继续引导其他系统,而且可以写命令了。进入grub4dos有几秒时间可以选择,我们选command或者按键盘的c键,然后写命令。find /ubuntu.iso命令,可以找一下哪个盘的根目录有ubuntu.iso文件。我们找一下bootmgr,例如返回结果是(hd0,0)那我们就可以写root (hd0,0),chainloader /boogmgr,boot,然后它就可以启动到win7的菜单了。或者找到ntldr,比如(hd0,0),就root (hd0,0),chainloader /ntldr,boot,就好。启动PE,比如小马PE,就chainloader到它的setupldr.bin文件。如果是想启动ubuntu的安装,可以提前把iso放到根目录下(例如叫做u.iso),光盘里的casper文件夹下的vmlinuz和initrd.lz或者initrd.img或者类似的文件(因为压缩格式不同,扩展名不同)放到根目录下。在grub4dos找它们,比如find /vmlinuz,例如得到(hd0,5),那我们可以写root (hd0,5),kernel /vmlinuz iso-scan/filename=/u.iso boot=casper,initrd /initrd.lz,boot,然后就启动了ubuntu的安装。如果想启动苹果的启动器(变色龙为例),就kernel /chameleon就行(假定文件名叫chameleon)。想安装苹果系统的话,有个国人写的小工具,可以把苹果安装盘放到硬盘某分区里的。至于破解的苹果安装盘,网上也有好多版本,各种黑苹果,自己试吧。要注意的是驱动不全,因为好多硬件苹果没有用过的,就没有驱动了,比如我的3945abg无线网卡。如果安装ubuntu的时候,选择把启动器安装到(hd0,5)那么我们之后可以在grub4dos中写root (hd0,5),chainloader +1,boot;或者,chainloader (hd0,5)+1,boot,就可以啦。建议是,装linux的时候,考虑好,要不要把linux的启动器放到主MBR上,就是说要不要用linux的grub作为开机时的启动器。我是喜欢win7的启动菜单的。另外,可以在grldr文件同一目录放一个menu.lst,就可以做成启动菜单。要注意的是,在windows下,要用gvim(免费开源)或者ultraedit(收费巨贵)之类的软件,才能看这种linux的格式的回车的文件,不然没回车,保存也可能会乱。
2启动修复
用xp的安装盘启动,有fixmbr命令,可以把MBR改成启动ntldr和boot.ini。用win7的安装盘启动,有bootsect命令,可以修复ntldr或者bootmgr的启动方式。参数,/nt52表示ntldr的启动,/nt60表示bootmgr的启动。/mbr表示修复MBR就是说开机时的硬盘前512字节无法引导到实际的启动文件时使用。Grub的修复,见相关linux的说明,有关grub-install之类的命令。如果想用grub4dos作为主启动,就要到grub4dos下载的地方(sourceforge)找grubinst软件,用它可以让MBR从grldr引导。
还要注意的是,需要把想要启动的分区(比如第一分区(hd0,0))设置成“启动”或者叫“活动”,才能让它开机时启动。不然白白地折腾好久也无法让电脑启动的。
修复bootmgr启动,用bcdboot。
3PE和临时启动环境
我用的是小马PE,不是很稳定,各种功能常常崩,不过懒得去了解更多的PE了。里面有bootsect程序的,也有finaldata和diskgenius(可以用来设置启动(活动)分区)之类的软件,也有office和aida32什么的,有线无线网卡声音驱动什么的,播放器什么的。
有puppylinux,启动也很快。
或者就用ubuntu的livecd。
另外还有gparted live cd,可以用来设置启动(活动)分区。
4系统安装
装xp和win7可以用小马PE,从U盘启动。Xp有iso里的i386文件夹就行,win7有里面的install.wim就行。激活win7可以用小马OEM7F7软件。
安装ubuntu的话,用grub引导启动光盘,然后打开终端,写sudo umount –l /isodevice,之后就能用它的图形界面安装了。新版的不知道是否还需要这一步,可能会省略掉。其中参数-l表示lazy,我是说,别写成表示自己的I了。
另外win7可以装到VHD中。用这个方法装,可以把win7装到一个文件中,而不影响现在的系统。如果临时需要干净系统,或者临时尝试新系统(比如64位),推荐这个。建议不要用动态大小,用固定大小。因为从VHD启动后,就会是还原成它的完整大小的,关机后再缩小。
下面一~大~段话,介绍如何在VHD装win7。
在管理员cmd中运行:
diskpart
create vdisk file=”D:\vm_disk\real7.vhd” maximum=31000 type=fixed
sel vdisk file=”D:\vm_disk\real7.vhd”
attach vdisk
list disk
sel disk 2 ——这里选择上面列出的新建的盘号,很可能是最后一个,看大小即可
list par
create part primary
sel part 1 ——这里选择刚刚创建的盘号,默认就是1
active ——设置为活动分区,这样才能启动
format fs=ntfs quick
assign ——这里是给它分配一个盘号,看看“你的电脑”,有新的盘
exit
据说,从windows automated intallation tools里,能找到imagex软件
imagex /info d:\vm_disk\install.wim ——可以看到U版win7是5号
imagex /apply d:\vmdisk\install.wim /check 5 g:\ ——这里号是刚看到的,G是VHD挂的分区
(另外,用“我的电脑”,磁盘管理,也有新建VHD的功能,不过要在左边点右键。)
灌装完安装程序,下面取消挂载VHD
diskpart
sel vdisk file=”d:\vm_disk\real7.vhd”
detach vdisk
exit
下面做一下启动项
bcdedit
bcdedit /copy {current} /d “boot from vhd” ——运行完这一行得到一个guid,用它替代下文的{guid}
bcdedit /set {guid} device vhd=[d:]\vm_disk\real7.vhd
bcdedit /set {guid} osdivice vhd=[d:]\vm_disk\real7.vhd
bcdedit /set {guid} detecthal on
bcdedit /set {guid} description “boot from vhd”
(上面的中括号,是表示相对的盘符,不会因为系统的盘符变化而失效)
下面重启,即可选择新的系统了。
苹果的安装,驱动比较麻烦,前期只是把文件copy到某分区,改一下分区的类型。注意用来copy的软件有设置启动项的功能,千万不要用它的,打的勾全取消,不然可能电脑的启动会出大问题(我遇到过,很奇怪)。然后找一个变色龙启动器,从grub4dos中kernel过去就行了。安装时要选择驱动什么的,要根据自己的电脑硬件来。装完后的启动,也是从grub4dos里面kernel到变色龙,然后启动mac。
本文原创,转载请注明http://cdarling.me
许可:cc by-nc-sa
这是一条镜像帖。来源:北邮人论坛 / windows / #115953同步于 2011/5/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Windows机器人发帖
【原创】关于win,lin,mac的启动,U盘系统,启动修复,互相引
cdllikeny
2011/5/19镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
求问,怎样不用bootmgr,直接用grub4dos引导win7或者vista
至于MBR用bootmgr,是因为喜欢它的样子,不喜欢grub4dos的样子……
【 在 betz293 的大作中提到: 】
: g4d安装到mbr,自己写menu.lst,非得用bootmgr干嘛
: --
当然不可能啊,除非m$肯。。
BCD也不漂亮,何必呢,而且,文中的BCD的处理过多,显得思路不够清晰啊,倒是关于PE,还是推荐0PE吧,特别容易DIY,对于学PE特别好
【 在 cdllikeny 的大作中提到: 】
: 求问,怎样不用bootmgr,直接用grub4dos引导win7或者vista
: 至于MBR用bootmgr,是因为喜欢它的样子,不喜欢grub4dos的样子……
: 【 在 betz293 的大作中提到: 】
: ...................