创建空白的引导分区用于使用Grub4Dos启动硬盘上的所有系统
2012-03-01 20:32
423 查看
今天花费了几乎一天的时间解决这个问题。写篇文章记录下过程,以作记录.
背景:
之前一直做linux下的开发,所有一直使用linux系统,主要是Ubuntu,Kubuntu和OpenSUSE。硬盘上系统很多,不管使用 grub还是xp管理启动项都不太和我的心意。xp肯定不可能关系linux的启动项;grub可以管理所有系统的启动,但又没有Grub4Dos的一些特性。所以之前都是一直使用一个大小512MB左右的Grub4Dos启动分区独立管理启动列表。但这个分区是很早之前就做好了的,后面由于重装系统等操作,致使其内容发生变化(下面详述原因),GHOST到另外一台机器上后不能正常使用。
今年公司有新的项目要用Qt统一3个平台下的软件,所以要重新做架构。这个工作交给了我,并且先只做Windows下的,那么开发环境就需要转换到windows(win7)下。公司给配了台4核的新机器,所以想把老机器上的linux系统迁过去,并且新机器上也用Grub4Dos做启动管理。
老机器上只有一个Win7系统。
过程:
1. 使用Ubuntu安装盘,用GParted调整分区(安全,windows下的工具老造成分区表丢失等很烦人的问题)。
2. 从老机器上把Grub4Dos分区GHOST到新机器,不可用。
3. 之前的启动U盘不可用,从网上下载大白菜启动U盘制作工具V3.5,重新制作了启动U盘。
4. 用启动U盘,启动到WinPE。
5. 修复MBR到XP。
6. 设置新机器上得Grub4Dos分区为活动分区(下简称为D)。
7. 拷贝ntldr文件到D。
8. 下载最新的Grub4Dos,V4.4。
9. 拷贝grldr和menu.lst到D。
10. 创建boot.ini文件并正确书写内容。
11. 重启系统——> 失败。
其实从上边的过程看其实没有什么问题,所以失败后一直不知道什么原因。花费很多时间尝试,都没能解决问题,主要是确认是不是只需要ntldr文件;修改Boot.ini并测试;查找资料等等。还花费时间尝试在老机器的XP系统上搭一个虚拟机测试下。
问题原因:
新机器没有光驱,之前为了启动到Ubuntu的Live系统,在win7下装了个Grub4Dos。也就是在C盘下有一个grldr文件。
所以boot.ini中的“c:\grldr=“Grub4Dos””,一直启动到之前的C盘下的grldr文件。
而类似“multi(0)disk(0)rdisk(0)partition(x)\grldr”的启动项,都不能启动系统。x代表我试了好多数值从1-4。
解决办法:
1. 删除C盘下有一个grldr文件,因为Grub4Dos是从第一个分区开始搜索grldr文件,所以一直找不到D盘下的(这个问题其实之前知道的,只是好长时间不用Windows,都忘了)。
2. 启动,一切正常。
总结:
一个Grub4Dos启动分区需要的全部文件:
1. ntldr文件
2. boot.ini文件
3. grldr
4. menu.lst
启动的过程是:
硬盘的MBR被加载——>寻找硬盘上的活动分区——>加载ntldr文件——>解析boot.ini——>加载grldr——>解析menu.lst
先写这些后续继续完善。
背景:
之前一直做linux下的开发,所有一直使用linux系统,主要是Ubuntu,Kubuntu和OpenSUSE。硬盘上系统很多,不管使用 grub还是xp管理启动项都不太和我的心意。xp肯定不可能关系linux的启动项;grub可以管理所有系统的启动,但又没有Grub4Dos的一些特性。所以之前都是一直使用一个大小512MB左右的Grub4Dos启动分区独立管理启动列表。但这个分区是很早之前就做好了的,后面由于重装系统等操作,致使其内容发生变化(下面详述原因),GHOST到另外一台机器上后不能正常使用。
今年公司有新的项目要用Qt统一3个平台下的软件,所以要重新做架构。这个工作交给了我,并且先只做Windows下的,那么开发环境就需要转换到windows(win7)下。公司给配了台4核的新机器,所以想把老机器上的linux系统迁过去,并且新机器上也用Grub4Dos做启动管理。
老机器上只有一个Win7系统。
过程:
1. 使用Ubuntu安装盘,用GParted调整分区(安全,windows下的工具老造成分区表丢失等很烦人的问题)。
2. 从老机器上把Grub4Dos分区GHOST到新机器,不可用。
3. 之前的启动U盘不可用,从网上下载大白菜启动U盘制作工具V3.5,重新制作了启动U盘。
4. 用启动U盘,启动到WinPE。
5. 修复MBR到XP。
6. 设置新机器上得Grub4Dos分区为活动分区(下简称为D)。
7. 拷贝ntldr文件到D。
8. 下载最新的Grub4Dos,V4.4。
9. 拷贝grldr和menu.lst到D。
10. 创建boot.ini文件并正确书写内容。
11. 重启系统——> 失败。
其实从上边的过程看其实没有什么问题,所以失败后一直不知道什么原因。花费很多时间尝试,都没能解决问题,主要是确认是不是只需要ntldr文件;修改Boot.ini并测试;查找资料等等。还花费时间尝试在老机器的XP系统上搭一个虚拟机测试下。
问题原因:
新机器没有光驱,之前为了启动到Ubuntu的Live系统,在win7下装了个Grub4Dos。也就是在C盘下有一个grldr文件。
所以boot.ini中的“c:\grldr=“Grub4Dos””,一直启动到之前的C盘下的grldr文件。
而类似“multi(0)disk(0)rdisk(0)partition(x)\grldr”的启动项,都不能启动系统。x代表我试了好多数值从1-4。
解决办法:
1. 删除C盘下有一个grldr文件,因为Grub4Dos是从第一个分区开始搜索grldr文件,所以一直找不到D盘下的(这个问题其实之前知道的,只是好长时间不用Windows,都忘了)。
2. 启动,一切正常。
总结:
一个Grub4Dos启动分区需要的全部文件:
1. ntldr文件
2. boot.ini文件
3. grldr
4. menu.lst
启动的过程是:
硬盘的MBR被加载——>寻找硬盘上的活动分区——>加载ntldr文件——>解析boot.ini——>加载grldr——>解析menu.lst
先写这些后续继续完善。
相关文章推荐
- 在vmware中使用实际物理硬盘分区,那么在虚拟系统启动后,该分区将被锁定,直到虚拟系统关机。
- XP系统,使用ISO映像,从硬盘上启动CDLinux
- 程序员修电脑必备: 使用Grub2制作一个多系统(WinPE与Linux, Android X86)启动的维护移动硬盘和U盘
- 第一个(应用的)组件启动时,(系统)创建主进程(包名)+主线程,Application对象 (一个应用所有组件默认运行在同一个进程)
- 使用U盘制作linux启动盘,并且成功安装Linux系统后,拔掉无法再次启动linux,修复引导区到硬盘
- 使用grub4dos引导程序启动多个系统
- 使用grub4dos制作多系统启动U盘(win7、ubuntu12.04)
- 使用grub4dos制作多系统启动U盘(win7、ubuntu12.04)
- 适合制作U盘/硬盘启动的WinPE系统大搜集【都可以配合V3使用】
- Windows下使用命令行创建可启动U盘(可以安装系统的U盘)
- 联想E430使用移动硬盘做系统启动
- 从硬盘启动的Linux 0.11-devel系统 中文版权所有: OldLinux论坛
- Vmware使用技巧:“设置U盘、光盘启动、本地文件共享、安装Ghost版系统”图文教程
- 用于创建REST风格系统的架构
- LINUX系统中动态链接库的创建与使用
- UEFI+GPT分区 装win8 ubuntu双系统实战成功——实战机型索尼SVS15,适用所有UEFI启动的
- 硬盘及系统启动故障处理指南
- 笔记本硬盘显示所有文件占用空间比实际相差几十G,原因就是系统自己备份导致的
- 为什么我的xp系统在有进程cidaemon.exe启动时,内存的使用量就一直上升?
- 使用 Docker/LXC 迅速启动一个桌面系统