mbr每个非mbr引导的分区激活用4个字节存储该非mbr引导的分区激活总扇区数,那么每个非mbr引导的分区激活最大支持2TB的容量啊,四个非mbr引导的分区激活就是8TB

关于 Linux 存储管理深入理解_Linux教程_Linux公社-Linux系统门户网站
你好,游客
关于 Linux 存储管理深入理解
来源:Linux社区&
关于 Linux 存储管理深入理解
物理硬盘 ==& 分区规划 ==& 格式化 ==& 读/写文档
分区MBR 不大于2TB传统MBR分区模式 1~4个主分区 //理论上0~3个主分区+1个扩展分区(n个逻辑分区) //实际上注意事项& MBR分区表只能记录4个主分区,编号范围1-4& 当有必要使用4个以上分区时,需要建立扩展分区(占主分区编号),扩展分区最多只能有1个& 扩展分区作为一个中间性质的容器,从其中再划分出的分区空间即为逻辑分区格式化赋予文件系统数据在空间中,存储的规则,排列的方式NTFS(windows 默认)EXT4 RHEL6默认XFS RHEL7默认SWAP 虚拟内存目录结构 / 根目录 :存放所有数据(Linux系统的起点)/dev 设备文件 磁盘表示方式hd,表示IDE设备sd,表示SCSI设备硬盘分区管理磁道:track 每个磁道 63 个扇区扇区:sector 每个扇区 512 个字节磁头:head 柱面:cylinder 柱面大小=磁道容量盘面数量硬盘总容量=柱面数磁头数单磁道扇区数单个容量扇区大小(一般初始为512字节) MBR/msdos 分区模式1~4个主分区,或者0~3个主分区+1个扩展分区(n个逻辑分区)最大支持容量位2.2TB的磁盘扩展分区不能格式化
一,查看但前有那些磁盘
[root@localhost ~]
[root@localhost ~]
MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
└─vda1 253:1
二.如何划分分区使用fdisk分区工具(之支持MBR)查看分区fdisk -l例:
[root@localhost ~]
磁盘 /dev/vdb:10.7 GB,
字节, 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
修改硬盘的分区表fdisk 硬盘设备例:
[root@localhost ~]
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xada4991d 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):
常用交互指令m 列出指令帮助p 查看现在的分区表n 新建分区d 删除分区q 放弃更改并退出w 保存更改并退出 例:
[root@localhost ~]
MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
└─vda1 253:1
├─vdb1 253:17
0 part /part1
├─vdb2 253:18
0 part /part2
└─vdb3 253:19
0 part /part3
三.格式化分区常用的格式化工具mkfs 工具集mkfs.文件系统 分区设备路径mkfs.ext3 分区设备路径mkfs.ext4 分区设备路径mkfs.xfs 分区设备路径mkfs.vfat -F 32 分区设备路径 例:
[root@localhost ~]# .
.xfs(有)
四.挂载使用
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
五.查看挂载使用情况
[root@localhost ~]
可用 已用% 挂载点
1% /dev/shm
0% /sys/fs/cgroup
172.25.254.254:/home/guests
32% /home/guests
扩展: 缓解根分区压力可以将新建一个分区vdb5mount /dev/vdb5 /mntcp -r /home/ /mnt/rm -rf /home/umount /mnt/mount /dev/vdb5 /home 六.划分扩展分区
p 查看分区表
n 创建新的分区
-----&回车----&起始回车-----&结束回车
将所有空间给扩展分区
p 查看分区表
n 创建新的分区-----&起始回车------&结束+1G
n 创建新的分区-----&起始回车------&结束+1G
p 查看分区表
w 保存并退出
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
└─vda1 253:1
├─vdb1 253:17
0 part /part1
├─vdb2 253:18
0 part /part2
├─vdb3 253:19
0 part /part3
├─vdb4 253:20
├─vdb5 253:21
└─vdb6 253:22
开机自动挂载 /etc/fstab
xfs defaults
[root@server0 ~]
[root@server0 ~]
/dev/vdb3 /part3 xfs defaults 0 0
/dev/vdb2 /part2 ext4 defaults 0 0
验证:mount -a 检测/etc/fstab开机自动挂载配置文件,格式是否正确检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载df -h补充: blkid 文件目录 #查看分区UUID
总结1.lsblk 查看硬盘信息2.fdisk 分区3.partprobe 刷新 新的分区表4.mkfs.xfs 格式化分区5.mount 挂载测试6./etc/fstab 开机自动挂载
练习: 划分/dev/vdc[1-3]主分区10G,划分扩展分区,在划分两个逻辑分区10G
fdisk /dev/vdc
p 查看分区表
n 创建新的分区
n 创建新的分区
p 查看分区表
n 创建新的分区
p 查看分区表
w 保存并退出
LVM逻辑卷1.管理分散的空间2.逻辑卷动态的扩大与缩减LVM工作方式零散空间存储 ---& 整合的虚拟磁盘 ---& 虚拟的分区物理卷PV 卷组VG 逻辑卷LV首先将众多的物理卷组(PV)成卷组(VG),在从卷组中划分出逻辑卷(LV)LVM管理工具集scan 扫描create 创建display 显示remove 删除extends 扩展一.创建物理卷与卷组vgcreate 卷组名 空闲分区lvcreate -L 大小 -n 名称 卷组名
[root@server0 ~]
Physical volume "/dev/vdc1" successfully created
Physical volume "/dev/vdc2" successfully created
[root@server0 ~]
Attr PSize
myvg lvm2 a--
10.00g 10.00g
myvg lvm2 a--
10.00g 10.00g
[root@server0 ~]
0 wz--n- 19.99g 19.99g
二.创建逻辑卷(逻辑卷的大小不能超过卷组)lvcreate -L 逻辑卷大小 - n 逻辑卷的名称 卷组名
[root@server0 ~]#
[root@server0 ~]#
#PV #LV #SN
19.99g 3.99g
[root@server0 ~]#
三.使用逻辑卷
[root@server0 ~]
[root@server0 ~]
[root@server0 ~]
/dev/myvg/mylv /lvm ext4 defaults 0 0
[root@server0 ~]
[root@server0 ~]
逻辑卷扩展(支持线上操作)lvextend -L 新大小 /dev/卷组名/逻辑卷名一.卷组有足够的剩余空间1.直接扩展逻辑卷的空间
[root@server0 ~]
Pool Origin Data%
Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 16.00g
[root@server0 ~]
Extending logical volume mylv to 18.00 GiB
Logical volume mylv successfully resized
[root@server0 ~]
Pool Origin Data%
Move Log Cpy%Sync Convert
mylv myvg -wi-ao---- 18.00g
[root@server0 ~]
可用 已用% 挂载点
1% /dev/shm
0% /sys/fs/cgroup
/dev/mapper/myvg-mylv
2.扩展文件系统的大小
扩展ext4文件系统:resize2fs /dev/myvg/mylv
[root@server0 ~]
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on / on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/myvg/mylv is now 4718592 blocks long.
[root@server0 ~]
可用 已用% 挂载点
1% /dev/shm
0% /sys/fs/cgroup
/dev/mapper/myvg-mylv
扩展xfs文件系统:xfs_growfs /dev/myvg/mylv
二.卷组没有剩余空间vgextend 卷组名 空闲分区
[root@server0 ~]#
#PV #LV #SN
19.99g 1.99g
1.先扩展卷组
[root@server0 ~]
Physical volume "/dev/vdc3" successfully created
Volume group "myvg" successfully extended
2.扩展逻辑卷的空间3.扩展文件系统大小
逻辑卷缩减 (运维几乎不用)先缩减文件系统 在缩减空间
[root@server0 ~]
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on / on-line resizing required
resize2fs: On-line shrinking not supported
[root@server0 ~]
[root@server0 ~]
resize2fs 1.42.9 (28-Dec-2013)
请先运行 'e2fsck -f /dev/myvg/mylv'.
[root@server0 ~]
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/myvg/mylv: 11/1638400 files (0.0% non-contiguous), 146871/6553600 blocks
[root@server0 ~]
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv to 2621440 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 2621440 blocks long.
[root@server0 ~]
[root@server0 ~]
可用 已用% 挂载点
1% /dev/shm
0% /sys/fs/cgroup
/dev/mapper/myvg-mylv
PE:卷组划分空间的单位,4M(默认)创建卷组的时候设置PE大小vgcreate -s PE大小 卷组名 空闲分区lvcreate -l PE的个数 -n 逻辑卷名 卷组名 RHEL6 CE请创建一个逻辑卷 大小位250M,名字为lvmtest (因为PE默认时4M 分区只会分给252M )
[root@server0 ~]
Volume group "myvg" successfully changed
[root@server0 ~]
[root@server0 ~]
[root@server0 ~]
管理交换空间相当于虚拟内存当物理内存不够用时,使用磁盘空间来模拟内存在一定成都上缓解内存不足的问题交换分区:以空闲分区充当的交换空间
[root@server0 ~]
正在设置交换空间版本 1,大小 =
无标签,UUID=7034ba6a-908d-49c3-b213-c75be9c94625
[root@server0 ~]
[root@server0 ~]
[root@server0 ~]
[root@server0 ~]
[root@server0 ~]
[root@server0 ~]
[root@server0 ~]
开机自动挂载
[root@server0 ~]
/dev/vdc5 swap swap defaults 0 0
[root@server0 ~]
[root@server0 ~]
使用UUID 完成开机自动挂载
blkid 文件目录
[root@server0 ~]
/dev/vdc6: UUID="a-4a7b-a2ce-4d2ba6b68d4b" TYPE="swap"
[root@server0 ~]
UUID="a-4a7b-a2ce-4d2ba6b68d4b" swap swap defaults 0 0
[root@server0 ~]
[root@server0 ~]
[root@server0 ~]
RAID 磁盘阵列廉价冗余磁盘阵列(Redundant Arrays of Inexpensive Disks)通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘阵列的价值:提升I/O效率,硬件级别的数据冗余不同RAID级别的功能,特性个不相同
RAID 0 ,条带模式(至少要两块磁盘)同一个文档分散存放在不同磁盘并行写入以提高效率磁盘存储利用率:100%缺点:没有可靠性RAID 1 ,镜像模式(至少要两块磁盘)一个文档复制成多份,分别写入不同磁盘多份备份提高可靠性,效率无提升磁盘存储利用率:&=50%缺点:效率不高RAID 5 ,高性价比模式(至少需要三块) #常用相当于RAID 0 和RAID 1 的折中方案需要至少一块磁盘的容量来存放校验数据能够通过校验值和一部份数据推理出缺失的文件一般买四块 多出的一块做热备份 有一个坏了顶替上 将坏掉的数据移交到其中磁盘存储利用率:N-1/NRAID 6 高性价比/可靠模式(一般银行用)-相当于扩展的RAID5阵列,提供2份独立校验方案-需要至少两块磁盘的容量来存放校验数据磁盘存储利用率:N-2/NRAID 0+1 (先做RAID 0 再作 1 )/RAID 1+0(先做RAID 1 再作 0)(至少四块)至少要四块 RAID 0+1 底层两两先做RAID 0 然后两两结合 在作RAID 1 -整合RAID 0 ,RAID 1 的优势-并行存取提高效率,镜像写入提高可靠性磁盘存储利用率:&=50% RAID阵列实现方式硬RAID :由RAID控制卡管理阵列-主板--&阵列卡--&磁盘--&操作系统--&数据软RAID :由操作系统来管理阵列-主板 -- & 磁盘 -- & 操作系统 -- & RAID软件 -- &数据
本文永久更新链接地址:
相关资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款mbr每个分区用4个字节存储该分区总扇区数,那么每个分区最大支持2TB的容量啊,四个分区就是8TB_百度知道
mbr每个分区用4个字节存储该分区总扇区数,那么每个分区最大支持2TB的容量啊,四个分区就是8TB
mbr每个分区用4个字节存储该分区总扇区数,那么每个分区最大支持2TB的容量啊,四个分区就是8TB为啥别人说最大2TB?
我有更好的答案
你可以使用的只有2T左右的空间。你可以买一个3T的硬盘试试。无论你分几个分区,分区多大都只能用2T左右,另外的空间根本无法分区mbr确实是无法支持大于2TB的分区
能正面回答吗?
有实力 无所惧
主营:互联网安全 电脑加速 电脑漏洞修复 电脑杀毒 电脑办公
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Linux的引导分析(分区表与stage1)
1)BIOS将控制权交给硬盘的bootloader(stage1).
2)bootloader(stage1)将stage1_5加载到内存.
3)bootloader通过stage1.5,识别文件系统,将stage2加载到内存.
4)stage2此时就可以在文件系统中将menu.lst配置文件加载,进入启动内核的引导过程.
一)BIOS引导过程
BIOS的作用:
BIOS在计算机启动时负责和所有硬件沟通,并将计算机呈现在用户面前.
BIOS与南/北桥:
北桥主要控制内存和CPU,而南桥主要负责PCI,PCI-E,USB,VGA等所有外围设备.
在南桥里面有一块特殊的区域,负责存储CMOS的信息,CMOS是用户存储BIOS设备的地方.
BIOS的引导过程:
1)开启电源.
2)CPU先被激活并去寻找BIOS.
3)BIOS会初始化各种主板芯片组.
4)BIOS初始化键盘控制器8042.
5)初始化中断向量,中断服务例程.
6)初始化VGA BIOS控制器.
7)显示BIOS的版本和公司名称
8)扫描软驱和各种介质容量
9)读取CMOS的启动顺序配置,并检测启动装置是否正常
10)调用INT 19H的2号功能来读出硬盘MBR扇区的内容,将其读入到内存h,并跳转至此处执行.
二)MBR和它的分区表
MBR位于硬盘的0柱面,0磁头,1扇区,被称为主引导程序.
它由三个部分组成:主引导程序,硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA).
在 总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition
table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中.第三部分是magic
&number,占2个字节,固定为55AA.
我们可以用dd命令来将/dev/sda磁盘的MBR读出并写入到/tmp/d20文件,如下:
dd if=/dev/sda of=/tmp/d20 bs=512 count=1&
用hexdump打开/tmp/d20文件,如下:
注:-C的作用是用十六进制及ASCII的方式查看文件,并采用低/高位的方式显示
hexdump -C /tmp/d20
我们先来看下分区表,它的位置起始于MBR的446(0x1BE)个字节的位置,终止于510(0x1fd)个字节的位置.
每个分区是16个字节,最多有4个分区,也就是说分区表中的第一个分区表项从第一行的0x1bf(80 01)开始,到第二行的54 02结束,在/dev/sda磁盘中我们一共有2个分区,所以这里有两条记录.
地址 & & &0 &1 &2 &3 &4 &5 &6 &7 & 8 &9 &A &B &C &D &E &F
&00 00 00 00 00 00 00 00 &c2 b3 09 00 00 00 80 01 &|................|
&01 00 83 fe ff ff 3f 00 &00 00 41 29 54 02 00 fe &|......?...A)T...|
&ff ff 05 fe ff ff 80 29 &54 02 6e b1 6b 74 00 00 &|.......)T.n.kt..|
&00 00 00 00 00 00 00 00 &00 00 00 00 00 00 00 00 &|................|
&00 00 00 00 00 00 00 00 &00 00 00 00 00 00 55 aa &|..............U.|
分区表的具体含义如下:
字节 含义 值
00 分区是否可引导。 0,不可引导。80,可引导
01-03 分区开始的CHS值(Head,Sector,Cylinder,Sector的高 位是Cylinder的第9,10位)
04 分区类型 7,NTFS,C, FAT32,5,F 扩展分区等等
05-07 分区结束的CHS值(Head,Sector,Cylinder,Sector的高 位是Cylinder的第9,10位)
08-11 LBA方式下,相对的起始扇区号
&&在MBR分区里边,相对0扇区,
&&扩展分区表示相对于扩展分区的起
&&始扇区(little endion 格式)
12-15 该分区拥有的扇区数量 (little endion)
我 们先来看一下扇区数量,也就是每条分区记录的最后4个字节,我们看上例中的第一个分区,这里是41 29 54
02,把高位和低位转换后,也就是0x2542941个扇区,转换成十进制是个扇区,再转换成字节就是 =.
也就是20GB.所以我们第一个分区是20GB
下面来看一下该分区在线性寻址方式下(LBA)的绝对起始扇区号(相对于0扇区).
LBA 即(Logic Block
Address)又称为线性寻址模式,在这种模式下,磁盘不再有柱面,磁头,扇区的三维定义,而是将磁盘上所有的扇区依次从0开始编号.所以CHS已经不 是磁盘分区的唯一依据,且更没有必要用CHS来划分磁盘,因为CHS本身来讲也是一个逻辑三维.
我们看到第一个分区的这四个字节为3f 00 &00 00,把高低和低位转换后,也就是0x3f个扇区,转换成十进制就是63个扇区,再转换成字节就是63*512=32256.
32256就是32kb,所以我们第一个分区是从磁盘第63个扇区开始存放数据.
那么第二个分区的这四个字节应该是第一个分区的扇区数()加上第一个分区的起始扇区(63),结果就是x2542980相符.
下面是起始CHS和结束CHS
CHS是过去的一种寻址方式,也就是用柱面(Cylinder)/磁头(Head)/扇区(Sector)三个参数来定位一个唯一的扇区.
而CHS是一种逻辑上的三维定义,并不是和硬盘物理结构一一对应,比如我们看到的第一个分区表项从第1(0x01)磁头开始,从fe个磁头处结束,事实上我们不可能有这么多磁头的硬盘.
我们看到第一个分区的起始CHS地址为01 01 00,其中第一个字节0x01表示开始磁头号,第二个字节的低6位00 =),第二个字节的高2位作为起始柱面号的高2位,第三个字节的8个bit作为分区起始柱面号的低8位.
我们现在已经不用CHS做为磁盘的寻址方式了,因为采用CHS寻址的分区最大也不会超过8GB,也就是柱面数最多(1024)*扇区最大数(64)*磁头最大数(256)*每扇区字节数(512)/92MB,也就是8G.
为了使用8GB以上的分区,BIOS中开始支持LBA,而CHS这种方式已经被放弃,成为历史,在1998年以后的BIOS都会支持LBA方式.
LBA的寻址方式可以让我们支持2TB,这是因为分区相对起始扇区号(分区项08-11个字节)和分区最大扇区数(分区项12-15个字节)的位数都是32bit.也就是0xFFFFFFFF*512/24=2048GB,
三)stage1,stage1.5,stage2
stage1即是mbr中的bootloader.
我们可以在系统中看到stage1文件,比如:
ls -l /boot/grub/stage1&
-rw-r--r-- 1 root root 512
07:11 /boot/grub/stage1
stage1的大小是512个字节,正是MBR的大小,但stage1的最后66个字节与mbr不同,mbr的最后66个字节分别是64个字节的分区表,和MBR标记55AA.
我们可以比对一下stage1与MBR的前446,它们的内容是完全一样的.我们可以理解stage1文件是MBR中bootloader的一个备份.&
stage1功能有限,不能完成grub的很多功能,例如多重引导,选择内核文件等.
stage1将stage1.5读入到内存,来过渡整个引导过程,即通过stage1.5来识别文件系统,从而能加载stage2,完成上述的功能.
为了识别多种文件系统,所以有多个stage1_5文件
ls /boot/grub/*1_5
/boot/grub/e2fs_stage1_5 &/boot/grub/jfs_stage1_5 & &/boot/grub/reiserfs_stage1_5
/boot/grub/fat_stage1_5 & /boot/grub/minix_stage1_5 &/boot/grub/xfs_stage1_5
那么stage1无法识别文件系统,又是怎么能找到stage1.5呢
因为在bootloader知道stage1.5放在哪里,stage1.5一般紧跟在mbr后面,即512个字节后面就放着stage1.5,如上面我们分析mbr那样,第一个分区是从线性寻址的63个扇区开始的,也就是线性地址32kb的地方,
所以用dd命令读取sda设备的最前面32kb到临时文件,如下:
dd if=/dev/sda of=/tmp/stage1.5 bs=32k count=1
注意下面就是stage1.5,这和/boot/grub/e2fs_stage1_5的内容是一样的
下面我们来尝试覆盖mbr中的引导程序,并将它恢复.
1)首先覆盖mbr中的stage1:
dd if=/dev/zero of=/dev/sda bs=446 count=1 &
2)导出/dev/sda磁盘的mbr,如下:
dd if=/dev/sda of=/tmp/cmbr bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0023115 s, 222 kB/s
3)我们查看导出的mbr文件,如下:
hexdump -C /tmp/cmbr&
00 00 00 00 00 00 00 &00 00 00 00 00 00 00 00 &|................|
&00 00 00 00 00 00 00 00 &00 00 00 00 00 00 80 01 &|................|
&01 00 83 fe ff ff 3f 00 &00 00 41 29 54 02 00 fe &|......?...A)T...|
&ff ff 05 fe ff ff 80 29 &54 02 6e b1 6b 74 00 00 &|.......)T.n.kt..|
&00 00 00 00 00 00 00 00 &00 00 00 00 00 00 00 00 &|................|
&00 00 00 00 00 00 00 00 &00 00 00 00 00 00 55 aa &|..............U.|
4)安装stage1,如下:
grub& root (hd0,0)
&Filesystem type is ext2fs, partition type 0x83
grub& setup (hd0)
&Checking if &/boot/grub/stage1& exists... yes
&Checking if &/boot/grub/stage2& exists... yes
&Checking if &/boot/grub/e2fs_stage1_5& exists... yes
&Running &embed /boot/grub/e2fs_stage1_5 (hd0)&... &15 sectors are embedded.
&Running &install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst&... succeeded
5)我们再次导出mbr,发现已经成功的恢复了.
dd if=/dev/sda of=/tmp/nmbr bs=512 count=1 &&
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0. s, 155 kB/s
hexdump -C /tmp/nmbr&
下面我们来尝试覆盖stage1.5,并将它恢复,如下:
1)导出sda设备节点的stage1.5
dd if=/dev/sda of=/tmp/mbr bs=512 count=64&
64+0 records in
64+0 records out
32768 bytes (33 kB) copied, 3.1594e-05 s, 1.0 GB/s
2)覆盖sda设备节点的stage1.5
这里我们将MBR之后的63个扇区至0.
dd if=/dev/zero of=/dev/sda bs=512 count=63 seek=1
63+0 records in
63+0 records out
32256 bytes (32 kB) copied, 0. s, 95.1 MB/s
3)输出这63个扇区的数据,如下:
dd if=/dev/sda of=/tmp/stage1_5_1 bs=512 count=63 skip=1
63+0 records in
63+0 records out
4)我们查看sda磁盘stage1_5数据已经被清0
hexdump -C /tmp/stage1_5_1 & & & & & & & & & & & & & & & & & & &
00 00 00 00 00 00 00 &00 00 00 00 00 00 00 00 &|................|
5)我们尝试用grub程序来重新安装stage1.5,如下:
Probing devices to guess BIOS drives. This may take a long time.
&& &GNU GRUB &version 0.97 &(640K lower / 3072K upper memory)
&& & & [ Minimal BASH-like line editing is supported. & For
&& & & & the & first & word, &TAB &lists &possible &command
&& & & & completions. &Anywhere else TAB lists the possible
&& & & & completions of a device/filename. ]
grub& root (hd0,0)
&Filesystem type is ext2fs, partition type 0x83
grub& setup (hd0)
&Checking if &/boot/grub/stage1& exists... yes
&Checking if &/boot/grub/stage2& exists... yes
&Checking if &/boot/grub/e2fs_stage1_5& exists... yes
&Running &embed /boot/grub/e2fs_stage1_5 (hd0)&... &15 sectors are embedded.
&Running &install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst&... succeeded
grub& quit
6)再次输出stage1_5到文件,并查看,如下:
dd if=/dev/sda of=/tmp/stage1_5_1 bs=512 count=63 skip=1
63+0 records in
63+0 records out
32256 bytes (32 kB) copied, 0. s, 5.5 MB/s
test2:~# hexdump -C /tmp/stage1_5_1&
stage2是grub的核心程序,包括选项操作系统加载,新增参数,修改选项.
stage1将/boot/grub/stage2读入到内存,并通过stage2进行引导.
grub& root (hd0,0)
&Filesystem type is ext2fs, partition type 0x83
grub& setup (hd0)
&Checking if &/boot/grub/stage1& exists... yes
&Checking if &/boot/grub/stage2& exists... yes
&Checking if &/boot/grub/e2fs_stage1_5& exists... yes
&Running &embed /boot/grub/e2fs_stage1_5 (hd0)&... &15 sectors are embedded.
&Running &install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst&... succeeded
我们可以看到grub到底安装了哪些东西:
/boot/grub/stage1 (hd0) ----&它安装stage1到磁盘的MBR
(hd0)1+15 p ----&将stage1_5写入到hd0磁盘MBR后面的15个扇区中.
(hd0,0)/boot/grub/stage2 -----&告知bootloader,当需要加载stage2时,其位置在第一块硬盘的第一个分区的/boot/grub/目录下.
/boot/grub/menu.lst----&将menu.lst的位置告诉stage2
<span type="1" blog_id="1144637" userid='
分享到朋友圈
好的文章,和好友一起分享MBR与GPT分区结构的不同及磁盘分区命令总结 | Linux运维部落
一、MBR分区结构
主引导记录(Master Boot Record,缩写:MBR),又叫做主引导扇区,是目前比较流行的一种分区结构。磁盘的0磁道0扇区称为MBR,它的大小是512字节,这个区域被分为三个部分:
第一部分为boot loader(主引导程序),占446字节;
第二部分为Partition table(分区表),即DPT,占64字节,每个分区项占用16个字节,这16个字节中存有活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、隐含扇区数目(4个字节)、分区总扇区数目(4个字节)等内容。由于MBR扇区只有64个字节用于分区表,所以只能记录4个分区的信息;
第三部分是分区标识符,固定为55AA,占2字节,这个标识非常重要,如果这个标识被破坏,即便磁盘正常分区也会被认为这块磁盘是一块全新的没有被分区的盘。
因为MBR分区方案采用的4个字节存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,MBR分区表最大可寻址的存储空间只有2TB(2^32×512字节),因此MBR只支持2TB以下的硬盘,超过2TB的硬盘也只能管理2TB。
MBR分区包括主分区和扩展分区,主分区和扩展分区的总数不能超过4个,标识编号为1-4,主分区可以直接使用,但是扩展分区需要划分成逻辑分区后才能使用,逻辑分区的数量不受限制,标识编号从5开始。一般的MBR分区方式为3个主分区加1个扩展分区,扩展分区下面再划分多个逻辑分区。
二、GPT分区结构
GPT磁盘是指使用GUID分区表的磁盘。是源自EFI标准的一种较新的磁盘分区表结构的标准。与普遍使用的主引导记录(MBR)分区方案相比,GPT提供了更加灵活的磁盘分区机制。
在GPT分区表的最开头(LBA0),处于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。
GPT分区表分为4个区域:GPT头、分区表、GPT分区、备份区。
GPT头:起始于磁盘的 LBA1,通常也只占用这个单一扇区。其作用是定义分区表的位置和大小。GPT头还包含头和分区表的校验和,这样就可以及时发现错误。
分区表:分区表区域包含分区表项。这个区域由GPT头定义,一般占用磁盘LBA2~LBA33扇区。分区表中的每个分区项由起始地址、结束地址、类型值、名字、属性标志、GUID值组成。分区表建立后,128位的GUID对系统来说是唯一的。
GPT分区:最大的区域,由分配给分区的扇区组成。这个区域的起始和结束地址由GPT头定义。
备份区:备份区域位于磁盘的尾部,包含GPT头和分区表的备份。它占用GPT结束扇区和EFI结束扇区之间的33个扇区。其中最后一个扇区用来备份1号扇区的EFI信息,其余的32个扇区用来备份LBA2~LBA33扇区的分区表。
三、磁盘分区命令总结
1、在虚拟机中添加几块硬盘,添加完之后正常需要重启虚拟机才能看到新加硬盘,如果不想重启可以使用命令扫描
[root@liang&~]#&echo&&-&-&-&&&&/sys/class/scsi_host/host2/scan
2、查看磁盘命令
lsblk、cat /proc/partitions、ls /dev/sd* & & 三个命令都可以列出加载到内存中的磁盘设备
fdisk -l:命令看到的是实际硬盘的分区情况
3、创建磁盘分区命令
fdisk:主要用来创建MBR分区,也可以创建GTP分区,但是一般不用该命令创建GPT分区。
fdisk& &disk& : 更改磁盘分区
&&&&常用的子命令有:
&&&&n:新建分区
&&&&d:删除分区
&&&&p:打印分区列表
&&&&m:帮助
&&&&t:更改分区类型
&&&&w:保存退出
&&&&q:不保存退出
fdisk -l &disk&: 列出磁盘分区
gdisk:创建GPT分区,创建分区时的用法与fdisk基本一样,常用的子命令也基本一样。
parted:该命令也可以创建和删除分区,但是不建议使用,因为该命令是实时对磁盘进行分区修改的,一旦执行立即生效。
parted&/dev/DEVICE&mklable&&gpt|msdos:更改GPT格式分区和MBR格式分区
parted&/dev/DEVICE&print:打印分区列表
parted&/dev/DEVICE&mkpart&primary&NUM&SIZE:创建主分区,需要指定分区号和分区大小,默认单位为“M”
parted&/dev/DEVICE&rm&NUM:删除分区,需要制定分区号
parted&-l:列出所有块设备的分区列表
4、同步分区表
使用fdisk命令或gdisk命令新建或删除分区后有时内存不能立即识别,这是需要手动同步分区列表。
在CentOS5和CentOS7中一般使用 partprobe 命令同步,但在CentOS6中使用该命令后无效,需要使用partx命令。
partprobe的用法:partprobe [/dev/DEVICE] ,如果不跟硬盘默认为全部硬盘
partx的用法:
新增分区后同步需要使用-a选项:partx -a /dev/DEVICE
删除分区后同步需要使用-d选项和-n选项:partx -d -n M:N /dev/DEVICE
5、创建文件系统(格式化分区)
&cat /proc/filesystems :可以查看系统支持的文件系统类型
mkfs命令的用法有两种:
mkfs.FS_TYPE /dev/DEVICE 和 mkfs -t FS_TYPE /dev/DEVICE
FS_TYPE包括:ext系列、vfat、xfs(CentOS7)、msdos、btrfs等
mkfs -L &#039;LABEL&#039; :设置分区LABER
mke2fs:ext系列文件系统专用管理工具
&&&&常用选项:
&&&&-t:指定文件系统类型(ext2、ext3、ext4)
&&&&-b:设置默认block大小(96)
&&&&-L &#039;LABEL&#039;:设置分区LABER
&&&&-j:相当于 -t ext3,格式化成带有记录日志功能的ext2文件系统
&&&&-i #:为数据空间中每多少个字节创建一个inode,次大小不应该小于block的大小
&&&&-N #:为数据空间创建多少个inode
&&&&-I:一个indoe记录大小128&#
&&&&-m:默认为5%,为管理员预留空间占分区总空间的百分比
&&&&-o FEATURE:启用指定特性
&&&&-o ^FEATURE:关闭指定特性
6、查看文件系统信息
blkid:查看块设备属性信息
用法:blkid[OPTION]&#8230; [DEVICE]
&&&&-U &UUID&:根据指定的UUID来查找对应的设备
&&&&-L &LABEL&:根据指定的LABEL来查找对应的设备
e2label:管理ext系列文件系统的LABEL
&&&&用法: &e2label device [ new-label ]
findfs:查找分区,可以指定根据label查看或根据uuid查看
用法:findfs LABEL=&label&|UUID=&uuid&
tune2fs 命令可查看或重新设定ext系列文件系统的参数值
&&&&-l:查看指定文件系统超级块信息
&&&&-L &#039;LABEL&#039;:修改卷标
&&&&-m #:修改预留给管理员的空间百分比
&&&&-j:将ext2升级为ext3
&&&&-O:文件系统属性启用或禁用
&&&&-o:调整文件系统的默认挂载选项
&&&&-U ‘UUID’:修改UUID号
dumpe2fs -h& DEVICE:查看超级块信息(分组信息)
7、文件系统检测和修复
常用于死机或者非正常关机之后,挂载的文件系统标记为“dirty”。
fsck命令的用法:
fsck.FS_TYPE 或 fsck -t FS_TYPE
&&&&-a:自动修复错误
&&&&-r:交互式修复错误
e2fsck:ext系列文件系统专用检测修复工具
&&&&-y:自动回答为yes
&&&&-f:强制修复 &
您还未登录,请登录后再进行相关操作!
400-080-6560
在线咨询:
工作时间:周一至周五,9:30-18:30,节假日同时也值班

我要回帖

更多关于 非mbr分区激活win7 的文章

 

随机推荐