直接用bcdedit创建bootmgr数据库和修复启动菜单

使用下面方法之前需要bcdedit和bootsect两条命令,这两条命令可以到vista或者windows 7安装光盘上获得。bootsect.exe文件在vista和windows 7的安装光盘的boot目录下,而bcdedit.exe文件可以在安装了vista系统或者windows 7系统的电脑上的%windir%\system32目录下获得,当然也可以使用imagex命令挂载vista或者windows 7安装光盘里source\install.wim文件,然后到windows\system32下也能找到bcdedit命令。至于imagex命令可以到微软官方下载WAIK工具包。

1、创建BCD数据库

将安装光盘上的boot文件夹和bootmgr文件一起复制到c盘,然后删除C:\Boot\bcd文件。配置 BCD 存储在此步骤中,使用 BCDEdit 新建名为 BCD 的启动配置文件。BCD 替换 Boot.ini。BCDEdit 是旨在管理 BCD 存储的命令行工具。Windows PE 和 Windows Vista 中都提供 BCDEdit。例如,进入bcdedit所在目录执行如下命令:

Bcdedit /createstore c:\BCD

bcdedit /import c:\bcd

Bcdedit /create {bootmgr} /d "Boot Manager"

Bcdedit /set {bootmgr} device boot

bcdedit /set {bootmgr} locale en-US //可以不设置,默认为英文

2、添加Windows XP启动菜单:

bcdedit /create {ntldr} /d " Windows XP Professional"

bcdedit /set {ntldr} path \ntldr

bcdedit /set {ntldr} device partition=c:

bcdedit /displayorder {ntldr} -addlast

3、添加Windows 7启动菜单

Bcdedit /create /d " Windows 7 Ultimate " -application osloader

这条命令完后会返回一个GUID值,如:{faef23c1-6efe-11de-b779-b2c7bec45a2c}

The entry {uid} was successfully created.

接下来{uid}这个GUID值就表示是Windows 7的菜单项。

Bcdedit /set {uid} osdevice partition=E:

Bcdedit /set {uid} device partition=E:

Bcdedit /set {uid} path \windows\system32\winload.exe

Bcdedit /set {uid} systemroot \windows

Bcdedit/displayorder {uid} -addlast

4、添加PE 1.0启动菜单

bcdedit /copy {ntldr} /d "Windows PE"

//The entry {uid} was successfully

bcdedit /set {uid} path \LDRXPE

bcdedit /set {uid} device partition=c:

bcdedit /displayorder {uid} -addlast

5、添加Ubuntu9.04启动菜单

下载grub4dos软件包,提取文件grldr 和grldr.mbr拷贝到C盘根目录

bcdedit /create /d "GRUB MENU" /application bootsector #建立一个名称为“GRUB MENU”,实模式启动扇区的启动项

生成{ID}复制下来

bcdedit /set {ID} device partition=c: #设置引导扇区文件所在的分区,grldr.mbr所在分区

bcdedit /set {ID} path \grldr.mbr #指定引导扇区文件的路径和文件名

bcdedit /displayorder {ID} /addlast #增加这个Ubuntu的菜单项到末尾。

下面修改menu.lst,就行了。

附:我的Ubuntu9.04 menu.lst

title      Ubuntu 9.04, kernel 2.6.28-12-generic

root      ()/ubuntu/disks

kernel    /boot/vmlinuz-2.6.28-12-generic root=UUID=2414A33A14A30DBC loop=/ubuntu/disks/root.disk ro quiet splash

initrd    /boot/initrd.img-2.6.28-12-generic

6、设置默认的启动条目和选择时间

Bcdedit /default {uid}

bcdedit /timeout 7

7、修改启动参数模式

bootsect /nt: (nt52是用ntldr方式启动,即XP启动菜单方式启动;nt60则是使用VISTA新式的bootmgr启动菜单。)

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2013-11/92756.htm

直接用bcdedit创建bootmgr数据库和修复启动菜单的更多相关文章

  1. [JAVASCRIPT][EXTJS]直接用JSON创建树形控件(Ext.tree.TreePanel )(转)

    直接用JSON创建树形控件(Ext.tree.TreePanel ) 1.创建多个根节点的树形 2.直接使用JsonList创建树形 <!DOCTYPE HTML PUBLIC "-/ ...

  2. PLSQL Developer 直接用ip访问指定数据库

  3. 直接用nose进行django项目测试并输出html报告

    先说需求:1.测试django项目:2.打印测试报告(html格式)有以下几种测试方法:1.django自带的测试模块.在app目录下的tests.py文件中写测试类,类似这样: class MyTe ...

  4. SQL SERVER 创建远程数据库链接 mysql oracle sqlserver

    遇到的坑 在连接Oracle时,因为服务器为10g 32位版本,然后在本地安装了32为10g客户端,然后一直报错[7302.7303],后来下载了12c 64位版本,安装成功后,问题解决 原因:mss ...

  5. 【neo4j】文件管理路径、数据备份、创建新数据库、导入数据等操作记录

    neo4j一般的配置路径如下 一.备份数据 使用neo4j-admin命令. 首先,先找到数据的存储路径,然后关闭数据库. 关闭数据库的语句如下: #切换到/bin目录下 ./neo4j stop 然 ...

  6. 使用PLSQL 创建Oracle数据库用户并设置权限

    转至https://blog.csdn.net/ying890/article/details/14083029?utm_medium=distribute.pc_relevant_download. ...

  7. Android入门(十)SQLite创建升级数据库

    原文链接:http://www.orlion.ga/603/ 一.创建数据库 Android为了让我们能够更加方便地管理数据库,专门提供了一个 SQLiteOpenHelper帮助类, 借助这个类就可 ...

  8. 在nginx中配置如何防止直接用ip访问服务器web server及server_name特性讲解

    看了很多nginx的配置,好像都忽略了ip直接访问web的问题,不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面. 官方文档中提供的方法: If you d ...

  9. (转载)直接用SQL语句把DBF导入SQLServer

    告诉大家一个直接用SQL语句把DBF导入SQLServer,以及txt导入Access的方法,大家抛弃BatchMove吧来自:碧血剑告诉你一个最快的方法,用SQLServer连接DBF在SQLSer ...

随机推荐

  1. Spark 学习(二)

    继续学习spark 认真查看了一下${SPARK_HOME}/bin/pyspark 的脚本,原来开启spark 的python 交互挺简单的. 主要操作 export PYTHONPATH=${SP ...

  2. 深入浅出面向对象分析与设计读书笔记一&吉他搜索案例&吉他特性锚点集中&委托&重用&业务阶段&需求列表&用例

    案例:吉他搜索Guitar Inventory GuitarSpec需求变化:增加吉他弦数特性原始程序需要的变化: 1.修改GuitarSpec,构造,成员,getter 2.修改Guitar,构造, ...

  3. 监控数组与foreach绑定-Knockout.js

    html: <h2>Your seat reservations</h2> <table>    <thead>  <tr>         ...

  4. [Android]进程间通信的方法

    一.管道 管道是进程间通信中最古老的方式,它包括 无名管道 和 有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信. 无名管道由pipe()函数创建. #i ...

  5. python 编程基础-字典类型和方法

    定义:字典是一种key-vlaue的数据类型. 字典特性KEY值必须是唯一,且可hash的(不可变数据类型),无索引,无序的(因为有KEY),查找速度快 语法:info = {'stu1101':&q ...

  6. (转)Centos 7.3 用户和组管理

    Centos 7.3 用户和组管理 原文:http://blog.csdn.net/github_39069288/article/details/73306489 3.1 用户和密码配置文件 pas ...

  7. 牛客网Java刷题知识点之什么是异常、异常处理的原理是什么、为什么要使用异常、异常体系、运行时异常、普通异常、自定义异常、异常链

    不多说,直接上干货! 在这个世界不可能存在完美的东西,不管完美的思维有多么缜密,细心,我们都不可能考虑所有的因素,这就是所谓的智者千虑必有一失.同样的道理,计算机的世界也是不完美的,异常情况随时都会发 ...

  8. Spring RestTemplate实现服务间的远程调用完整代码示例

    父pom: 服务提供方 pom: provider配置文件: provider启动类: provider实体类: provider Mapper: 内置了增删改查的方法 provider Servic ...

  9. vue-cli3脚手架的配置以及使用

    Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-service-global  ...

  10. SaaS 系统架构设计经验总结

    2B SaaS系统最近几年都很火.很多创业公司都在尝试创建企业级别的应用 cRM, HR,销售, Desk SaaS系统.很多SaaS创业公司也拿了大额风投.毕竟SaaS相对传统软件的优势非常明显. ...