Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >win 7和Ubuntu 12.04 双系统下的磁盘分区问题

win 7和Ubuntu 12.04 双系统下的磁盘分区问题

作者头像
s1mba
发布于 2018-01-03 09:27:10
发布于 2018-01-03 09:27:10
2.5K0
举报
文章被收录于专栏:开发与安全开发与安全

断续学Linux以来就一直没完全搞清楚磁盘分区的问题,现在虽然还是不清楚,但应该有点思路了,且记下。

我装了双系统,首先看在win 7下看到的磁盘分区情况:

本来是只有恢复分区,保留分区,以及CDFG盘,中间的几个主分区都是讲未配置的空间在装ubuntu时进行划分的,奇怪的是不应该显示为主分区,关于这点有些常识的人都知道。下面抄录一段:  硬盘的第一个扇区有512字节,其中主要分为两个部分(其实是4个部分,另外两个先可以不管),一个是存放启动引导程序(Master Boot Recorder,MBR)的空间,大约446字节。另一个是存放硬盘分区表(Disk Partition table, DPT)的空间,大约64字节。电脑开机后都要来读取这个扇区,这是启动电脑所必须的。  MBR真是个令人头疼的问题,关键在于使用“MBR”这个词的时候含义不同,我总结了一下有以下几种含义:      1、指主引导程序,如linux下常用的GRUB,lilo等,当然还有win的主引导程序。      2、指硬盘第一扇区中存放主引导程序的446字节的硬盘空间。      3、指硬盘第一扇区,也就是上面说的全部512字节的硬盘空间,包括了存放主引导程序的446字节的空间和存放分区表的64字节空间。 磁盘分区遵从 P+P+P+P  或者P+P+P+E的原则 总之,我们给硬盘分区必须遵守以上的规则,这是通用的,不论是使用windows还是使用linux都必须遵守。总结一下就是:       硬盘的分区种类有三种:主分区、扩展分区和逻辑分区。       主分区和扩展分区的分区记录保存在硬盘的第一扇区内,而这个地方空间有限,最多只能保持4个分区记录。所以我们硬盘的主分区和扩展分区的数量之和不能超过4。       扩展分区不能直接使用,只能在扩展分区中再次划分为逻辑分区后它的硬盘空间才能使用。       逻辑分区是扩展分区的一部分,所有逻辑分区的分区记录保存在扩展分区的头部,而非保存在硬盘的第一扇区内。 这里需要澄清的是每一个分区都有一个引导块(boot block),而MBR每个盘只有一个。MBR是用来加载引导程序的,并不是用来加载操作系统的。当你开机时,BIOS内置的检测程序(已经固化)会进行开机自检并在MBR中(MASTER的MBR)中加载开机引导程序。(这也就不难理解为什么MBR总是在0号磁道,如果MBR老是变更位置,那我岂不是要修改BIOS程序),MBR中的开机引导程序将在你选择操作系统之后将在你安装操作系统的那个主分区将操作系统的某些核心文件加载到内存并创建相应的进程,进行一系列的初始化..... 如前所说,在进行分区时,每个分区就是一个文件系统,而每个文件系统开始位置的那个块就成为引导块。引导块是由 PC标准规定的,用来存储磁盘分区信息和启动信息,任何文件系统都不能使用启动块。

如硬盘MBR的代号为(hd0),硬盘的第一个分区的引导块代号(也是分区代号)为(hd0,0),硬盘的第一个逻辑分区的引导块为(hd0,4),等会可以结合下面信息来看。

IDE、SATA甚至U盘都可能被Grub识别为hd设备(Linux会区分hd、sd);注意,Grub 2中分区号从1开始,但磁盘号仍然是从0开始的。。在Grub2中,(hd0,0)该表示为(hd0,1)或(hd0,msdos1)这样的。 我们知道,一个硬盘可以有很多分区,但MBR分区表只有四项,怎么能突破这个限制呢?答案是扩展引导记录(EBR - Extended Boot Record),通过把MBR分区表中一项设为扩展分区(系统ID为0x05或0x0F),其分区表项指定扩展分区的起始位置和长度,在扩展分区最开始扇区放置另外一个分区表,一般称为扩展分区表。扩展分区表的第一项指定扩展分区目前的逻辑分区信息,如果还有更多的逻辑分区,扩展分区表的第二项指定下一个EBR的位置,否则为0。通过这种方式,一个硬盘上的分区数目就没有限制了。 现在先来看ubuntu下的情况:

系统没有识别恢复分区,将win 7的盘挂载进来,如下

可以看到保留分区在Linux标识为/dev/sda2,而那个30G的就是C盘啦,标识为/dev/sda3, DFG都算是逻辑分区,D盘为/dev/sda5.那/dev/sda1呢?看下图:

没错,/dev/sda1就是恢复分区啦,/dev/sda5~/dev/sda7为DFG盘,而刚才在上图没有显示的/dev/sda8也出来了,就是虚拟内存区swap.从/dev/sda8~/dev/sda13都是我为ubuntu划分的分区,重点来了,那/dev/sda4是什么呢?其实就是一个扩展分区!!从/dev/sda5~/dev/sda13都是从/dev/sda4中划分出来的逻辑分区!!,有个证据可以证明的是可以看到/dev/sda4的end 数值与/dev/sda13 end的数值是一样的!都是976771071,而start 与/dev/sda5的 start也相差无几。查了下/dev/sda4中system列的意思,如下: It simply states that your 4th partition is an extended partition instead of a primary partition. The partition info in stored in MBR. However, the MBR can only store four partition entries. If you want more than four partitions, you will have to create an extended parition and with in which you can create more. In your case partition 5,6,7,8....

下面再看grub 2启动引导: 因为我是先装的win 7再装ubuntu,可以肯定 的是grub 2 装在了MBR,而grub 2 的配置文件却是在/boot/grub/grub.cfg

cat查看文件,找到比较重要的一些:

首先需要说明的是grub 2(可以安装在MBR或者引导块)引导加载程序可以做到: 1.直接指定并取用核心文件,加载到主存储器中 2.将控制权移交给下一个加载程序 可以看出上图是第二种功能,第一个menu是win 7恢复的引导加载,这个引导程序安装在第一个分区(恢复分区)/dev/sda1的引导块(hd0,0),即

(hd0,msdos1), chainloader +1:Load the boot loader, `+1' indicates that GRUB should read one sector from the start of  the partition;

如果在系统启动时菜单点击此项时将引导进入系统恢复。

第二个menu是win 7启动的引导加载(可以看到前面的图有加 * 号表示bootloader),这个引导程序安装在第二个分区(保留分区)/dev/sda2的引导块

(hd0,1),即(hd0,msdos2),如果在系统启动时菜单点击此项时将引导进入系统启动,即去/dev/sda3(C盘)找到系统内核文件加载到内存启动。

注:windows会默认将引导写入MBR和引导块(在这里是sda2的引导块),而linux可以选择安装在某个地方,因为选择安装在了MBR所以将windows的

覆盖掉,但sda2引导块的windows引导程序还可以看出来,如果先安装Linux再装Windows那将完全被覆盖掉。

而第一种功能如下图:

我们知道启动内核是在/boot下面的,因为我在分区时把/boot独立出来, 所以完整的路径就是 (hd0,msdos10)/vmlinuz-... 或者(/dev/sda10)/vmlinuz-...

如果没有独立出来,则为set root='(hd0,msdos9)'    #如前面,根目录/  为/dev/sda9 完整的路径为 (hd0,msdos9)/boot/vmlinuz-... 或者(/dev/sda9)/boot/vmlinuz-...

备注:

----------------------------------------------------------------------------------------- 系统ID可能的值: 0x01          FAT12主分区或逻辑分区。 0x04          FAT16主分区或逻辑分区。 0x05          扩展分区。 0x06          BIGDOS FAT16主分区或逻辑分区。 0x07          NTFS主分区或逻辑分区。 0x0B          FAT32主分区或逻辑分区。 0x0C          使用扩展中断13的FAT32主分区或逻辑分区。 0x0E          使用扩展中断13的BIGDOS FAT16主分区或逻辑分区。 0x0F          使用扩展中断13的扩展分区。 0x12          EISA分区。 0x42          动态磁盘卷。 0x86          遗留的FT(Fault Tolerant) FAT16。 0x87          遗留的FT NTFS。 0x8B          遗留的FT FAT32。 0x8C          遗留的FT 使用扩展中断13的FAT32。 27 Windows RE hidden partition On MBR disks, type 0x27. On GPT disks, GUID: DE94BBA4-06D1-4D40-A16A-BFD50179D6AC. A hidden version of a Windows RE type 0x7 partition with NTFS. When this is installed, reboot and press F8 in order to boot into this Recovery Environment. 07 HPFS/NTFS/exFAT 07 OS/2 IFS (e.g. HPFS) IFS = Installable File System. The best known example is HPFS. OS/2 will only look at partitions with ID 7 for any installed IFS (that's why the EXT2.IFS packet includes a special "Linux partition filter" device driver to fool OS/2 into thinking Linux partitions have ID 07). (Kai Henningsen (kai@khms.westfalen.de))

07 Windows NT NTFS Filesystem introduced in Windows NT 3.1. It is rumoured that the Windows NT boot partition must be primary, and within the first 2 GB of the disk.

07 exFAT Extended FAT, a.k.a. FAT64. Available in Microsoft Windows since CE 6.0 and Vista SP1. Allows 32 MB clusters and very large disks and files.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-04-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
​Linux 磁盘管理进阶
其中“hdx~”表明分区所在设备的类型、hd 表示ide、x表示哪块盘、~表示分区号
用户8418197
2021/12/23
2.6K0
Linux基础篇——Linux磁盘操作(磁盘基础知识、分类、分区、挂载、卸载、扩容)详解「建议收藏」
  假如你有个大木桶要装东西,如果木桶没有划分层,所有东西全部放入里面,虽然可以装,但是对大木桶的使用就合不合理,造成杂乱无章,寻找东西时候也耗时,甚至还有不同物品之间不能存放在一起而导致危险,那更好的做法自然是给大木桶画一下不同的区域,分成不同的层,每个层放不同的东西,即安全,寻找起来也方便;
全栈程序员站长
2022/09/01
8.4K0
Linux基础篇——Linux磁盘操作(磁盘基础知识、分类、分区、挂载、卸载、扩容)详解「建议收藏」
Linux系统磁盘分区及挂载 – fdisk[通俗易懂]
当我们拿到一块新的硬盘时,他所能够支持的最大空间只是代表硬件上的一个参数,我们要想让他能够正常的工作起来,必须要有相应的文件系统。文件系统决定了文件存储和管理时的方式和数据结构,也就是如何管理磁盘上的文件和文件夹。不同的文件系统拥有不同的特点,这也就是为什么我们在进行格式化操作必须要选定一种文件系统的原因。 当在一个操作系统(Windows、Linux、MacOS)中使用文件系统时,通常都会做一个统一的接口,来进行文件的读写,所以会存在某些文件系统只适用与某一种操作系统的情况。
全栈程序员站长
2022/09/22
6.4K0
Linux系统磁盘分区及挂载 – fdisk[通俗易懂]
Linux磁盘管理和文件系统[通俗易懂]
  磁盘和文件系统的管理是运维人员的重要工作内容之一,本文对磁盘和文件系统的一些概念做了详细解释,管理命令给出了常用示例,方便自己在工作时随时查阅,也欢迎各位一同学习。
全栈程序员站长
2022/09/01
5K0
Linux系统磁盘分区及挂载 - fdisk
当我们拿到一块新的硬盘时,他所能够支持的最大空间只是代表硬件上的一个参数,我们要想让他能够正常的工作起来,必须要有相应的文件系统。文件系统决定了文件存储和管理时的方式和数据结构,也就是如何管理磁盘上的文件和文件夹。不同的文件系统拥有不同的特点,这也就是为什么我们在进行格式化操作必须要选定一种文件系统的原因。当在一个操作系统(Windows、Linux、MacOS)中使用文件系统时,通常都会做一个统一的接口,来进行文件的读写,所以会存在某些文件系统只适用与某一种操作系统的情况。
一头小山猪
2020/04/10
5.7K0
搞它!!!详细介绍linux磁盘管理和文件系统
服务器如果插入磁盘,如何对磁盘进行配置,分区,使用 在Linux系统中,如何有效地对存储空间加以使用和管理,是一项非常重要的技术
不吃小白菜
2020/09/03
2.3K0
搞它!!!详细介绍linux磁盘管理和文件系统
安装双系统的一些记录
MBR(Master boot record)指主引导记录,主要用于硬盘分区。GRUB就是安装在MBR中,起引导系统作用。
老高的技术博客
2022/12/24
5860
Linux新手入门:用fdisk命令轻松分区
  fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具;本人译的不太好,也没有看中文文档;其实就是分区工具
会长君
2023/04/25
2.2K0
Linux 磁盘分区工具 gdisk / fdisk
将磁盘划分为若干个区块操作为磁盘分区,在各个操作系统中都有类似的内容,分区会为硬盘管理带来一些好处:
为为为什么
2022/08/06
10.2K0
Linux 磁盘分区工具 gdisk / fdisk
GRUB多操作系统启动程序介绍与设置使用
描述:GRUB英文全称GRand Unified Bootloader俗称引导程序是硬盘中的软件,它可以启动用户在计算机中的多个操作系统所以也叫多重启动管理器。 目前主流版本是 GRUB2,在windows中也有类似的引导程序ntloader虽然它也可以引导Linux操作系统但是比较麻烦;
全栈工程师修炼指南
2022/09/29
8.7K0
GRUB多操作系统启动程序介绍与设置使用
Centos大于2T磁盘如何分区
一、分区工具 分区工具:fdisk 和 parted ,其中大于2T请采取parted进行分区 yum install -y parted 二、MBR和GPT原理: 1、MBR原理: 主引导记录(MBR,Master Boot Record)是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。 通常,我们将包含MBR引导代码的扇区称为主引导扇区。因这一扇区中,引导代码占有
Linux运维技术之路
2022/06/07
2.7K0
Centos大于2T磁盘如何分区
磁盘分区类型和分区表的区别[通俗易懂]
任务1 罗列磁盘分区的类型并做比较性介绍 分类: FAT16、FAT32、NTFS、EXT2、EXT3、EXT4
全栈程序员站长
2022/09/22
3.2K0
磁盘分区类型和分区表的区别[通俗易懂]
ubuntu下硬盘安装win7和archlinux
上周末在家两天的时间只做了一件事,那就是装系统。不同于在很早之前没事就拿张ghost盘给人装系统(win的),这次的折腾是比较有技术含量的。整个过程中弄坏了一个sdcard的卡托,sdcard也被我格了无数遍。到最后发现其实全硬盘安装就可以了。
the5fire
2019/02/28
5.7K0
分享:Linux中存储设备的表示
摘要: 硬盘和硬盘分区在Linux都表示为设备,按我们通俗的说法来说,就是怎么来表示或描述硬盘和或硬盘分区,但这种描述应该是科学和具体的;比如IDE硬盘,在Linux 可以表示为 /dev/hda、/dev/hdb ... ;SCSI 接口的硬盘、SATA接口的硬盘表示为/dev/sda、/dev/sdb ... ... ;而IDE接口的硬盘/dev/hda,也可以表示为hd0 ,而 SCSI 接口的如果是 /dev/sda ,另一种表示方法是sd0; 理解两种表示方法有何用?至少GRUB引导管理器用到这些知识;另外我们mount (挂载)文件系统(分区),也会用到这些知识;
williamwong
2018/07/24
2.4K0
分享:Linux中存储设备的表示
[日常] 小白来装机基本概念BIOS与硬盘分区
这两天因为在linux进行测试,先是搞坏了linux的系统,然后在重装linux系统后搞坏了引导。在修复引导的过程中,搞坏了本机的win8系统,再次修复引导与重装linux后,linux可以访问了,windows系统重装后还是不行,引导部分也还是不行。从我的经历可以体现出,使用linux作为日常系统具有极大的风险,因为他的权限非常高并且某些软件的依赖有可能修改本地界面的依赖库,修改后非常容易使得界面无反应,大家一定谨慎使用。
唯一Chat
2019/10/29
2K0
硬盘的物理结构与磁盘分区原理
首先简单认识一下硬盘的物理结构,总体来说,硬盘结构包括:盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部分。所有的盘片(一般硬盘里有多个盘片,盘片之间平行)都固定在一个主轴上。在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离很小(所以剧烈震动容易损坏),磁头连在一个磁头控制器上,统一控制各个磁头的运动。磁头沿盘片的半径方向动作,而盘片则按照指定方向高速旋转,这样磁头就可以到达盘片上的任意位置了。
用户9736681
2022/05/11
2.4K0
硬盘的物理结构与磁盘分区原理
Linux磁盘分区详解
此时,student用户就只有2M的磁盘配额空间,也就是不能放入超过2M的文件,否则就会报错。
全栈程序员站长
2022/08/31
5.9K0
如何使用Linux dd命令克隆磁盘
在本教程中,我们将参考Linux dd命令的一个实际示例,系统管理员可以使用该命令将以MBR或GPT布局样式分区的较大HDD的Windows操作系统或Linux操作系统迁移到较小的SSD。 在本节摘录中,我们将使用安装在具有多个分区的硬盘上的Windows系统作为示例。 在HDD以MBR方案分区并且包含具有多个逻辑分区的扩展分区或分区无序的情况下,该方法可能变得相当复杂。 如果是这样,我建议你不要使用这种方法。 在这种情况下,使用ddrescure更安全,它可以克隆整个磁盘布局(分区表和每个分区内的已使用块),而不会实际传输空的空间。 可以通过从Ubuntu主存储库安装gddrescue包获得DDrescure。
子润先生
2021/06/15
18.3K1
Linux多块物理磁盘做LVM
最近刚刚跳槽,新单位同事问了我个问题,突然把我问懵了,因为好久没有接触底层磁盘了,于是做了以下的实验。
Bob hadoop
2021/02/27
5.3K0
Linux多块物理磁盘做LVM
Linux系统磁盘与分区管理
Linux最传统的磁盘文件系统(filesystem)使用的是EXT4格式,所以要了解文件系统就得要由认识EXT4开始,而文件系统是创建在硬盘上面的,因此我们得了解硬盘的物理组成才行,下面我们回来详细谈一谈磁盘,inode,block还有superblock等文件系统,的理论知识.
王 瑞
2022/12/28
6K0
相关推荐
​Linux 磁盘管理进阶
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档