重装系统(安装版)——磁盘分区——Windows启动过程——\\.\PhysicalDrive1的操作失败

搜罗整理自csdn博客、百度百科、远景论坛、无忧论坛等

1、\.\PhysicalDrive1的操作失败
这是由于U盘既作磁盘(添加磁盘时使用U盘作为磁盘即PhysicalDrive1),又作USB连接设备即真正的U盘。当虚拟机启动时,就会检测到这个矛盾的问题,它不知道怎么操作了!此时断开USB设备与虚拟机连接,使其连接真正到主机就没有问题了。(VMware虚拟机)

2、BIOS下Windows一般启动过程

  • 预引导:当电源接通后,CPU就会读取写死在ROM里的第一条指令,这条指令是一个跳转指令,告诉CPU到什么地方读取 BIOS ROM 。BISO程序开始自检(Power-On-Self-Test),自检无问题后,根据BIOS设定的启动顺序中,找到第一块储存设备中的第一个扇区,也就是读取最前面的512个字节(即主引导记录MBR)。如果这512个字节的最后两个字节是结束标志(0x55和0xAA),表明这个设备可以用于启动,就加载到内存;如果不是,表明设备不能用于启动,BIOS程序继续搜寻下一个外部储存设备。
  • 引导:主引导记录被加载到内存后(位置从前往后,包含主引导程序、分区表、结束标志),主引导程序(偏移地址0000H–0088H),在分区表中寻找可引导的“活动”分区,然后读取活动主分区的PBR(分区引导记录,也叫DBR),PBR再搜寻分区内的启动管理器文件bootmgr(Windows Vista、Windows 7、windows 8/8.1和windows 10中使用的启动管理器,Windows NT系列操作系统(Windows XP、Windows 2003)中的启动管理器——NTLDR。),在bootmgr被找到后,控制权就交给了bootmgr。bootmgr读取\boot\bcd文件(BCD=Boot Configuration Data ,也就是“启动配置数据”,简单地说,windows7下的bcd文件就相当于xp下的boot.ini文件),如果存在着多个操作系统并且选择操作系 统的等待时间不为0的话,这时就会在显示器上显示操作系统的选择界面。在我们选择启动Windows 7后,bootmgr就会去启动盘寻找 WINDOWS\system32\winload.exe,然后通过winload.exe加载windows7内核,从而启动整个windows7系 统。
  • 简单概括:BIOS>MBR>DPT>PBR> Bootmgr>bcd>Winload.exe>内核加载 >整个windows7系统

3、UEFI下Windows一般启动过程

  • 简介:EFI是可扩展固件接口(Extensible Firmware Interface)的缩写,是英特尔公司推出的一种在未来的类PC的电脑系统中替代BIOS的升级方案。UEFI是由EFI1.10为基础发展起来的,它的所有者已不再是Intel,而是一个称作Unified EFI Form的国际组织。
  • EFI+GPT分区表的启动大概是这样的,当然也有很多其他的设置
    bios识别硬盘→efi分区→启动是读取bcd菜单配置(如:是否启动传统启动顺序菜单)→bcd指定分区id下的目录下的启动文件(比如 分区:\WINDOWS\system32\winload.efi)→按照bcd上的这条目的启动配置进行引导启动这一个系统(如:是否禁用驱动程序签名校检,是哪一个启动模式)
  • uefi+gpt引导win的流程有两种:
    1.系统启动项启动
    uefi→efi分区\efi\Microsoft\boot\bootmgfw.efi→winload.efi
    2.硬盘启动项启动
    uefi→efi分区\efi\boot\bootx64(或bootia32)
    通常走的是第一种流程,uefi硬盘启动项是在usb启动时和本地硬盘上没有对应的系统启动项时才用的,是遵循固定逻辑寻找引导管理器的,先找到有efi属性的分区,如果这块硬盘没有efi属性的分区则找到第一个fat分区,找到指定分区后寻找efi\boot\bootx64(bootia32).efi文件。
  • 其他:在uefi下mbr的主分区和逻辑分区统统按主分区处理的,mbr的分区没有guid属性所以不存在efi分区就寻找第一个fat分区,gpt的每个分区都有guid的值来标记属性的,通过guid的值来寻找是否有efi属性的分区,没有efi分区的情况下才寻找第一个fat分区。在uefi的引导过程中uefi是直接吧控制权限传给引导的,开了secure boot的话uefi会验证efi文件的签名,通不过验证的话会拒绝加载。

4、相关分区

  • 主分区:分区表占64个字节,而每个分区的参数占据16个字节,故主引导扇区中总计只能存储4个分区的数据。在具体的应用中,为了建立更多的逻辑磁盘供操作系统使用,引入了扩展分区和逻辑分区,并把原来的分区类型称为主分区。
  • 扩展分区、逻辑分区:其中一个主分区作为扩展分区进行切割,变成一个个D盘,E盘,F盘……但是这些盘综合起来就是一个扩展分区,这些盘是相互链接的,并不像主分区那样,4个之间相互独立互不干扰。逻辑分区用链表进行链接,如果E盘中的分区信息丢掉,操作系统就找不到F盘了。
  • 启动分区:很简单,存放操作系统文件的的分区,比如装了2个系统:win7+linux那么你就2个启动分区。装的是windows启动分区:windows文件夹(system32文件)存放区。Linux启动分区:就看 / 分区装在哪,哪就是。
  • 系统分区:存放启动管理器的分区,Ntldr程序(win7等是bootmgr)或者Grub程序的分区,windows通常装在C盘,linux通常装载/boot分区。
  • 活动分区:活动分区是主分区,活动分区是系统分区,每次PC启动时,一块硬盘只能有一个活动分区,如果要启动windows就将windows的系统分区设为活动分区,计算机就会去那里装载引导程序并执行,如果要启动Linux就将Linux的系统分区设为活动分区。
  • 系统保留分区: 系统保留分区指的是Windows系统在第一次管理硬盘的时候,保留用于存放系统引导文件的分区。一般是系统的、活动的。
  • OEM分区:里有厂商预装的一键还原程序
  • 恢复分区:装有厂商系统还原的镜像文件
  • EFI系统分区:含有引导文件(efi下Windows7等是bootmgfw.efi,uefi下windows7等是bootmgr.efi,Linux是Grub)和系统保留分区类似。
    OEM分区和恢复分区主要是用于一键还原可以将电脑系统恢复到和新买的一样。

5、相关程序bcdboot
bcdboot:bcdboot —— bcd引导文件创建和修复工具。bcdboot.exe 命令行工具用于复制关键引导文件到系统活动分区(如那个100M系统保留分区)和创建新的系统bcd启动项。
bcdboot [/l ] [/s ] [/v] [/m [{OS Loader ID}]]
source 指定windows系统根目录的位置,用来指定引导文件的来源。
/l 指定一个语言参数,如不指定则默认为en-us(美国英语)。 这些可以在boot文件夹中找到,只不过是隐藏属性。
/s 指定一个盘符,用于指定复制引导文件到哪里。默认为本硬盘的活动分区。
/v 启用详细模式。
/m 如果提供了在BCD中已存在的GUID,则此选项可以将复制来的新数据与已存在数据合并, 即新数据中没有的其他BCD设置都保留。 一般地,没有该参数时,将替换与原GUID有关的全部启动项数据。
bcdboot.exe与bcdedit.exe的功能差不多,都是针对BCD(boot configuration data)这个文件进行创建和修改,
只是前者多了"复制关键引导文件(bootmgr文件和boot文件夹)"的功能,而后者可以一条一条地修改BCD中的参数,详细而复杂。

6、重装系统注意事项
如果没有引导文件,使用bcdboot修复一下,引导文件必须放在活动分区!如果放在其他分区,则需要激活该分区!

你可能感兴趣的:(计算机系统类)