无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3611|回复: 4
打印 上一主题 下一主题

把 PE 安装到 Linux 分区教程

[复制链接]
跳转到指定楼层
1#
发表于 2007-4-9 18:41:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为我一直使用Linux,硬盘上同时安装有 Windows 系统和 Linux 系统,一直使用 grub 0.97 引导各个操作系统。硬盘的第一个分区是 Linux 的 boot 分区,才100M,格式化成 xfs 文件系统格式,里面放置了 grub 0.97 启动的 stage 文件、menu.lst 文件、Linux 启动的内核、一个给grub引导的 DOS 2.88M 软盘镜像。还有很多空间,于是我想,把 Windows PE 也做个硬盘镜像,放到这个分区里面去引导。这样比安装到隐藏分区更安全,因为无论如何你在Windows下都看不到它的踪迹。

Linux 的 grub 0.97 可以识别各种文件系统格式的分区并且从里面读取文件,它支持的文件系统比 grub for dos 要多得多,比如 xfs、reiserfs、jfs 等,gnu grub 0.97 支持而 grub for dos 都不支持。而用过 linux 的人都知道,这些文件系统都比  Linux Ext2/Ext3 文件系统优秀,很多用 linux 的人都会选用这些文件系统,我个人最偏爱的是 xfs 文件系统。 所以为了读取 xfs 分区上的 WinPE 镜像,不能用 grub for dos,只能用原版的 gnu grub 0.97,也就是要把 grub 0.97 安装到硬盘的 mbr 上。这一点很简单,在 linux 下,打开终端,输入 grub,进入grub提示符后,依次输入:

root (hd0,0)
setup (hd0)
quit

这样就把grub 0.97装到了硬盘mbr上,而且指定grub读取硬盘第一分区上的启动文件。

然后就要用到 grub for dos 了,因为原版 gnu grub 0.97 没有虚拟盘的功能。gnu grub 0.97 读取并调用我们放在 xfs 分区上的 grub.exe,执行它,把启动权交给它,让他完成原版gnu grub无法完成的启动硬盘镜像的任务。具体做法如下:

1、制作包含WinPE的完整的硬盘镜像:
在linux终端中执行如下命令:
head -c 30m /dev/zero > WinPE.img
这样产生一个30M大小的文件。
qemu -fd0 DOS.img -hda WinPE.img -boot a
DOS.img 是一个可启动的软盘镜像,用qemu启动到DOS下对WinPE.img分区,格式化。只分一个区,格成fat16或fat32格式。
qemu -hda WinPE.img -cdrom xxxPE.iso -boot d
这一步用qemu启动xxxPE.iso这样一个可启动的PE的iso文件,启动后把WinPE.IS_、WINNT.XPE、NTLDR、NTDETECT.COM、LDRXPE这几个文件拷贝到WinPE.img里面的分区上。
关掉qemu,这样就制作好了包含WinPE的完整的硬盘镜像。

2、用 gnu grub 和 grub for dos 串联起来启动 Linux 分区上的 Window PE:
把grub for dos 中的 grub.exe 和上一步做好的 WinPE.img 一起拷贝到 xfs 分区根目录;
编辑 grub/menu.lst,添加如下内容:

title            Microsoft Windows PE
kernel            (hd0,0)/grub.exe --config-file="map --read-only (rd) (hd0); map --hook; chainloader (hd0,0)/ldrxpe; map --harddrives=1; rootnoverify (hd0)"
initrd            (hd0,0)/WinPE.img
boot

保存,重启电脑,这样就可以在 gnu grub 0.97 的菜单上选择启动放置在 Linux 分区上的WinPE了。这个PE比安装到隐藏分区中的WinPE更隐藏。

最后,再补充说明一下:
grub for dos 虚拟盘功能在不带 --mem 参数时要求被虚拟的镜像文件在物理硬盘上连续存放不能有碎片,这个好办,格完新分区后一次性拷贝 WinPE.img 到新分区就办到了。xfs 分区是支持文件连续存放的。但是如果你的 linux 分区是 ext2 或 ext3 格式的分区,无论你如何拷贝都无法办到把 WinPE.img 在物理磁盘上连续存放,因为 ext2 和 ext3 文件系统是分块存储文件的,通常它都不把文件存储到连续的块上,这样只能用 --mem 参数才能把 WinPE.img 成功 map 成虚拟硬盘。因此,在ext2 或ext3 格式的 linux 分区上, grub/menu.lst 得改成下面这样才行:

title            Microsoft Windows PE
kernel           (hd0,0)/grub.exe --config-file="map --mem (rd) (hd0); map--hook; chainloader (hd0,0)/ldrxpe; map --harddrives=1; rootnoverify(hd0)"
initrd            (hd0,0)/WinPE.img
boot

[ 本帖最后由 sxgpic 于 2007-4-9 09:14 PM 编辑 ]
2#
发表于 2007-4-9 19:03:05 | 只看该作者
这个才有价值,因为是在 Linux 分区。

而NTFS或FAT32分区用Grub启动PE实在有点多余,因为Grub启动PE比PELDR多了一个环节。
回复

使用道具 举报

3#
发表于 2007-4-10 01:37:48 | 只看该作者
我也一直想这个问题 想用linux下的grub启动pe  今天终于看到高人的手法了
不知道 只带命令行的linux最小能多大 我想做一个只是用来启动系统(pe & xp) linux  而不需要他做其他的   不知道光靠grub和linux内核能做到这些么
回复

使用道具 举报

4#
 楼主| 发表于 2007-4-11 12:59:09 | 只看该作者
Linux 可以做到一將1.44M的軟盤上,支持各種文件系統,支持USB設備,帶一百多個常用的linux命令。LFS 就是一種最出名的 DIY Linux。當然,也有很多現成的 tiny linux,很多現成的 live-cd linux。
回复

使用道具 举报

5#
发表于 2007-4-14 19:55:23 | 只看该作者
全是高手啊比不了了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-4 13:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表