该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

现在大家应该都在上班吧,咱今天探讨的是解决Linux和Windows双系统的引导问题

本文中, Windows使用XP, Linux选用Ubuntu. 但其实基本思想是一样的: Linux现在流行的bootloader是grub. xp和nt采用的是ntloader.

Ubuntu论坛里的这篇文章主张采用这样的引导方式: ntloader -> grub -> win/lin. 但正如有的网友所说, grub考虑到了引导windows, 而ntloader还没有考虑过引导windows之外的其他系统。 而且, 使用ntloader来引导比较繁琐。 不如使用grub引导简便。 这里我使用grub来作为bootloader.

先补充一下基础知识: 理解Linux的启动过程。 另外, 手头要有xp和Ubuntu的安装光盘。 (Ubuntu的LiveCD, 用以挂载硬盘分区以及恢复mbr)。 在开始之前, 要知道这样几个事实: (1) PC启动时, 在加载bios之后, 紧接着就加载位于mbr中的bootloader, 这个bootloader可以是ntloader, 也可以是grub. (2)安装windows系统时, 安装程序会把ntloader写入到mbr作为bootloader. (3)grub可以被安装到mbr, 也可以安装到其他位置。 但Ubuntu的liveCD进行安装时是默认安在mbr中的。

这样问题就来了: 怎么才能保证双系统能正常启动呢? 如果重装了其中的一个系统, 如何保证另外一个系统不受影响呢? 这就是这里要说的问题。

第一次安装

先安装Windows, 然后安装Linux. 采用这样的顺序不光是为了避免ntloader覆盖掉grub(就算被覆盖了, 也有解决办法, 在后面介绍), 更因为Linux可以被装在扩展分区而Windows不行。 另外, 安装linux时, grub会检测到已有的分区, 从而生成合适的启动选项来加载windows系统。

要注意的一点就是文件系统, 可以采用这样的方法: 在最开始安装windows时把计划给linux用的空间分为一个区, 之后在安装Linux时将这个区删除, 然后重新创建新的多个分区。 Ubuntu liveCD已经做得很傻瓜化, 安装不会碰到任何问题。

恢复MBR

相比Linux, Windows会比较频繁地重装, 重装之后的mbr会被覆盖, 从而无法引导linux系统。 解决整个问题只需要恢复以前的MBR. 重装Linux则不存在任何问题。 因为grub会检测到已有的windows分区。

首先备份mbr, 使用dd命令将硬盘第一个扇区的头446字节'抓'下来保存。 之后重装完windows之后再恢复mbr. 这需要用到linux启动光盘。 启动进入命令行, 挂载那个被保存的mbr文件所在的分区, 然后用dd命令恢复就可以了。(注意我的是SCSI硬盘, 所以是sda, IED硬盘为hda)

备份MBR:

# dd if=/dev/sda of=/boot/boot.NNNN bs=446 count=1

恢复MBR:

# dd if=/boot/boot.NNNN of=/dev/sda bs=446 count=1

-为什么不是512呢, 主引导扇区是一个扇区(512字节呀)?

-只把主引导扇区的备份文件boot.NNNN的前446个字节重写入主引导扇区。

boot.NNNN是我们在安装Linux之前整个主引导分区的备份。如果我们把

512个字节全部写入主引导扇区就可能会把安装了Linux后改变了的硬盘

DPT表也破坏掉。

MBR-> Main/Master Boot Record, 有些书上是写成Master的。

我认为可以分成三个部分吧, MBR+DPT+MagicNumber(446+64+2=512)

这也就是为什么进行MBR备份的时候要指定bs=512 或者 bs=1k, count=1的原因。 然后恢复时经常看到HOWTO里面是bs=446 count=1. 这个446就是指令部分的恢复, 不是DPT的恢复。 往往MBR里面的第一个指令是cli… 研究起来是比较有意思的。

此文转载:中国IT实验室 系统月刊

linux和windows双系统怎么引导,如何解决Linux和Windows双系统的引导问题相关推荐

  1. linux下usb设备节点名不固定,解决Linux下USB设备节点ttyUSB名不固定的问题,生成固定USB转串口设备节点...

    解决Linux下USB设备节点ttyUSB名不固定的问题,生成固定USB转串口设备节点 2018-09-19 http://blog.sina.com.cn/s/blog_8b58097f0102wx ...

  2. linux 解压文件乱码,云服务器:解决linux下zip文件解压乱码问题

    云服务器:解决linux下zip文件解压乱码问题 原因 由于zip格式并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时 ...

  3. linux apr防火墙,教你一招:解决linux下arp攻击的方法

    一般Windows用户可以使用antiArp防火墙,但是有些计算专业的朋友们由于工作或其他原因使用的是linux系统,那么linux下arp攻击怎么办呢?下面就是一位高手解决linux下arp攻击的方 ...

  4. linux服务器每次重启卡住,运维如何解决Linux服务器重启后命令无法正常使用的问题...

    原标题:运维如何解决 Linux 服务器重启后命令无法正常使用的问题 前提:在Linux系统中安装ASM,安装完ASM和Oracle数据库时都是正常使用的,但在重启服务器后Oracle相关命令不识别. ...

  5. word双引号间距大_解决Word 2013的双引号尴尬

    很多朋友已经开始使用Office2013,不过当你在Word2013组件输人双引号的时候,如果是使用智能五笔等第三方输人法,那么经常会出现半角双引号的情况,而系统自带的微软拼音输人法却是一切正常.经过 ...

  6. linux下u盘目录带锁,完美解决linux下U盘文件只读的问题

    1. 在终端运行如下命令 tail -f /var/log/syslog 2. 插入有只读文件系统故障的U盘 3. 观察命令行输出 输出局部如下: Jul  8 16:44:50 cslouis-pc ...

  7. linux找不到mysql命令行_解决linux系统中找不到命令的问题

    有时候我们在Linux命令行执行某个命令时,会报命令找不到的错误,这个错误出现的原因是,在执行命令时,系统会从系统环境变量中去寻找,如果找到了就执行,没找到就会报命令未找到. 下面我们拿Linux下执 ...

  8. linux系统怎么删除打印机,解决LINUX ES3.0下想指定打印机和用户的删除打印作业的问题...

    ############################################################################### # xlprm use for LINU ...

  9. 深度Linux ISO 如何解包安装,【已解决】今天更新了系统后,终端apt出现解包错误...

    aiyolo@aiyolo-PC:/var/cache/apt/archives$ sudo rm deepin-menu_3.1.6-5_amd64.deb [sudo] aiyolo 的密码: a ...

最新文章

  1. POJ 1741 Tree(树分治)
  2. 写入usb设备 linux 程序,模拟物理USB设备Linux
  3. CTF-杂项与密码学之工具使用汇总(三)
  4. 部署和调优 1.5 vsftp部署和优化-1
  5. c++ primer5th,习题12.24
  6. 【模板】高精度 [高精度]
  7. 尝试一种新的生命状态
  8. java 给数组添加删除数_Java实现数组的添加、删除、查找(基础型)
  9. python绘制立体扇形_你不知道的4种方法:python方法绘制扇形
  10. JAVA学习第六十三课 — 关于client服务端 amp;amp; URL类 amp; URLConnection
  11. Flutter开发:在Flutter Plugin中引入aar——本地maven法
  12. 避坑宝典|win11升级最新预览体验版bug梳理
  13. 第三篇:知其然,知其所以然-USB音频设备的开发过程
  14. mysql 高可用方案
  15. UE4-角色摄像机镜头的设置
  16. 远程教育两周,家长崩溃简史
  17. 180821 逆向-周练babyre+Retdec配置
  18. 360safe.php绕过,venom结合Metasploit绕过360安全卫士
  19. creo管道设计教程_Pro/E Pro/PIPING 管道设计教程|就上UG网
  20. 基于VBA实现Excel十字交叉高亮显示

热门文章

  1. DINE: Domain Adaptation from Single and Multiple Black-box Predictors
  2. php linux 缓存文件,Linux下搭建网站提示缓存文件写入失败的处理办法
  3. ffmpeg播放器声音效果1-淡入淡出
  4. 第一章 编程基础_ASCII 编码和GBK编码
  5. 商用密码产品及对应规范介绍
  6. 罗技Master 3 滚轮阻尼失效-解决方法
  7. 2W公里,就换EBC刹车片?
  8. Java基础之IO流(一)
  9. 帕金森病会引起哪些并发症
  10. Python学习笔记——selenium无头模式