Linux中磁盘分区——理论篇
现在主流的分区的方式有两种——MBR分区和GPT分区,本文将着重介绍MBR分区底层原理,及用相关命令验证相关原理
- Linux中磁盘分区理论篇
- 为什么要对磁盘进行分区
- MBR分区
- 实现原理
- MBR扇区组成
- 分区规则
- 实验
- 查看磁盘MBR扇区数据
- 修改MBR扇区数据
为什么要对磁盘进行分区
优化I/O性能
隔离系统和应用程序
实现磁盘空间的配额限制
同一磁盘可采用不同的文件系统
同一磁盘上可以安装多个操作系统
现在主流的分区的方式有两种——MBR分区和GPT分区,本文将着重介绍MBR分区底层原理,及用相关命令验证相关原理
- 为什么要对磁盘进行分区
- MBR分区
- 实现原理
- MBR扇区组成
- 分区规则
- 实验
- 查看磁盘MBR扇区数据
- 修改MBR扇区数据
优化I/O性能
隔离系统和应用程序
实现磁盘空间的配额限制
同一磁盘可采用不同的文件系统
同一磁盘上可以安装多个操作系统
//当然,分区也会有若干缺点,这里忽略不计
MBR分区
MBR:Master Boot Record, MBR磁盘分区是一种使用最为广泛的分区结构,它应用于Windows系统平台,Linux系统平台和基于X86的UNIX等系统平台。
实现原理
使用位于磁盘的0号扇区(一扇区等于512字节),来表示整个磁盘的整体分区情况,整个0号扇区简称为MBR扇区。
从硬件角度讲,MBR分区是按柱面进行的,也就是说,磁盘上的同一柱面只能归于一个分区。但是,在CentOS 6.8上,同一柱面上的不同扇区可以属于不同分区。
MBR扇区组成
MBR扇区由引导代码、MBR分区表、MBR结束标志3部分构成,一共占用512个字节。
其中引导代码占用446个字节,MBR分区占用64个字节,MBR结束标志占用2个字节,MBR扇区一共占用512个字节。
引导代码:占MBR分区的前446字节,负责整个系统的启动。如果引导代码被破坏,系统将无法启动
MBR分区:占引导代码后面的64个字节,是整个硬盘的分区表。每个分区使用的字节为16个,所以这确定了MBR分区方式最多只有4个主分区(包含扩展分区在内)。
MBR结束标志:占用最后2个字节,一直为”55AA”.
分区规则
1.一块磁盘上主分区和扩展分区的个数总和不能超过4个
2.一块磁盘上最多只能有1个扩展分区
3.扩展分区中可以创建逻辑分区,个数限制视磁盘类型而定
实验
注意:这些实验具有一定的破坏性,强烈建议不要在生产环境下操作,在虚拟机上操作上时,最好进行快照处理,以便于造成不可恢复性的操作时,可以使用快照功能将系统恢复到操作前的状态。
查看磁盘MBR扇区数据
hexdump /dev/sda -C -n 512
# hexdump命令可查看二进制文件,也可以直接查看硬盘数据
-C选项,以十六进制显示数据
-n选项,读取输入数据的字节个数
- 显示结果
...
000001d0 07 19 83 fe ff ff 00 48 06 00 00 00 80 02 00 fe |.......H........|
000001e0 ff ff 83 fe ff ff 00 48 86 02 00 00 40 01 00 fe |.......H....@...|
000001f0 ff ff 05 fe ff ff 00 48 c6 03 00 b8 39 15 55 aa |.......H....9.U.|
00000200
# 最后几行的结果
- 显示结果倒数第二行,最后四个字母“55 aa”,可见MBR扇区最后两个字节为“55aa”. 可以将其修改,然后reboot(注:不要在生产环境下操作),机器就启动不了,可以通过救援模式将这两个字节修改为”55 aa”.
修改MBR扇区数据
下面“破坏”mbr扇区数据
- 查看分区信息是否正常
[root@linuxidc ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000455a4
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 2637 20971520 83 Linux
/dev/sda3 2637 3942 10485760 83 Linux
/dev/sda4 3942 26109 178052096 5 Extended
/dev/sda5 3943 4204 2097152 82 Linux swap / Solaris
/dev/sda6 4204 26109 175952896 83 Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
使用fdisk命令查看磁盘信息,fdisk命令是直接查询mbr分区表的信息
- 备份mbr分区信息
[root@linuxidc ~]#dd if=/dev/sda of=/tmp/mbr bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00102281 s, 501 kB/s
读取/dev/sda设备中读取数据,并存储到/tmp/mbr文件中,块大小为1字节,数目为512个
- 修改mbr分区信息
[root@linuxidc ~]#dd if=/dev/zero of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0019455 s, 263 kB/s
把/dev/sda分区表的512个字节数据全部数据改为0
- 查看mbr分区信息
[root@linuxidc ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
# 显示不出磁盘分区的具体信息了
- 修复磁盘分区信息
[root@linuxidc ~]#dd if=/tmp/mbr of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0012424 s, 412 kB/s
理论篇到此就结束了,欢饮阅读下一篇实践篇
MBR:Master Boot Record, MBR磁盘分区是一种使用最为广泛的分区结构,它应用于Windows系统平台,Linux系统平台和基于X86的UNIX等系统平台。
使用位于磁盘的0号扇区(一扇区等于512字节),来表示整个磁盘的整体分区情况,整个0号扇区简称为MBR扇区。
从硬件角度讲,MBR分区是按柱面进行的,也就是说,磁盘上的同一柱面只能归于一个分区。但是,在CentOS 6.8上,同一柱面上的不同扇区可以属于不同分区。
MBR扇区组成
MBR扇区由引导代码、MBR分区表、MBR结束标志3部分构成,一共占用512个字节。
其中引导代码占用446个字节,MBR分区占用64个字节,MBR结束标志占用2个字节,MBR扇区一共占用512个字节。
引导代码:占MBR分区的前446字节,负责整个系统的启动。如果引导代码被破坏,系统将无法启动
MBR分区:占引导代码后面的64个字节,是整个硬盘的分区表。每个分区使用的字节为16个,所以这确定了MBR分区方式最多只有4个主分区(包含扩展分区在内)。
MBR结束标志:占用最后2个字节,一直为”55AA”.
分区规则
1.一块磁盘上主分区和扩展分区的个数总和不能超过4个
2.一块磁盘上最多只能有1个扩展分区
3.扩展分区中可以创建逻辑分区,个数限制视磁盘类型而定
实验
注意:这些实验具有一定的破坏性,强烈建议不要在生产环境下操作,在虚拟机上操作上时,最好进行快照处理,以便于造成不可恢复性的操作时,可以使用快照功能将系统恢复到操作前的状态。
查看磁盘MBR扇区数据
hexdump /dev/sda -C -n 512
# hexdump命令可查看二进制文件,也可以直接查看硬盘数据
-C选项,以十六进制显示数据
-n选项,读取输入数据的字节个数
- 显示结果
...
000001d0 07 19 83 fe ff ff 00 48 06 00 00 00 80 02 00 fe |.......H........|
000001e0 ff ff 83 fe ff ff 00 48 86 02 00 00 40 01 00 fe |.......H....@...|
000001f0 ff ff 05 fe ff ff 00 48 c6 03 00 b8 39 15 55 aa |.......H....9.U.|
00000200
# 最后几行的结果
- 显示结果倒数第二行,最后四个字母“55 aa”,可见MBR扇区最后两个字节为“55aa”. 可以将其修改,然后reboot(注:不要在生产环境下操作),机器就启动不了,可以通过救援模式将这两个字节修改为”55 aa”.
修改MBR扇区数据
下面“破坏”mbr扇区数据
- 查看分区信息是否正常
[root@linuxidc ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000455a4
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 2637 20971520 83 Linux
/dev/sda3 2637 3942 10485760 83 Linux
/dev/sda4 3942 26109 178052096 5 Extended
/dev/sda5 3943 4204 2097152 82 Linux swap / Solaris
/dev/sda6 4204 26109 175952896 83 Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
使用fdisk命令查看磁盘信息,fdisk命令是直接查询mbr分区表的信息
- 备份mbr分区信息
[root@linuxidc ~]#dd if=/dev/sda of=/tmp/mbr bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00102281 s, 501 kB/s
读取/dev/sda设备中读取数据,并存储到/tmp/mbr文件中,块大小为1字节,数目为512个
- 修改mbr分区信息
[root@linuxidc ~]#dd if=/dev/zero of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0019455 s, 263 kB/s
把/dev/sda分区表的512个字节数据全部数据改为0
- 查看mbr分区信息
[root@linuxidc ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
# 显示不出磁盘分区的具体信息了
- 修复磁盘分区信息
[root@linuxidc ~]#dd if=/tmp/mbr of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0012424 s, 412 kB/s
理论篇到此就结束了,欢饮阅读下一篇实践篇
MBR扇区由引导代码、MBR分区表、MBR结束标志3部分构成,一共占用512个字节。
其中引导代码占用446个字节,MBR分区占用64个字节,MBR结束标志占用2个字节,MBR扇区一共占用512个字节。
引导代码:占MBR分区的前446字节,负责整个系统的启动。如果引导代码被破坏,系统将无法启动
MBR分区:占引导代码后面的64个字节,是整个硬盘的分区表。每个分区使用的字节为16个,所以这确定了MBR分区方式最多只有4个主分区(包含扩展分区在内)。
MBR结束标志:占用最后2个字节,一直为”55AA”.
1.一块磁盘上主分区和扩展分区的个数总和不能超过4个
2.一块磁盘上最多只能有1个扩展分区
3.扩展分区中可以创建逻辑分区,个数限制视磁盘类型而定
实验
注意:这些实验具有一定的破坏性,强烈建议不要在生产环境下操作,在虚拟机上操作上时,最好进行快照处理,以便于造成不可恢复性的操作时,可以使用快照功能将系统恢复到操作前的状态。
查看磁盘MBR扇区数据
hexdump /dev/sda -C -n 512
# hexdump命令可查看二进制文件,也可以直接查看硬盘数据
-C选项,以十六进制显示数据
-n选项,读取输入数据的字节个数
- 显示结果
...
000001d0 07 19 83 fe ff ff 00 48 06 00 00 00 80 02 00 fe |.......H........|
000001e0 ff ff 83 fe ff ff 00 48 86 02 00 00 40 01 00 fe |.......H....@...|
000001f0 ff ff 05 fe ff ff 00 48 c6 03 00 b8 39 15 55 aa |.......H....9.U.|
00000200
# 最后几行的结果
- 显示结果倒数第二行,最后四个字母“55 aa”,可见MBR扇区最后两个字节为“55aa”. 可以将其修改,然后reboot(注:不要在生产环境下操作),机器就启动不了,可以通过救援模式将这两个字节修改为”55 aa”.
修改MBR扇区数据
下面“破坏”mbr扇区数据
- 查看分区信息是否正常
[root@linuxidc ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000455a4
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 2637 20971520 83 Linux
/dev/sda3 2637 3942 10485760 83 Linux
/dev/sda4 3942 26109 178052096 5 Extended
/dev/sda5 3943 4204 2097152 82 Linux swap / Solaris
/dev/sda6 4204 26109 175952896 83 Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
使用fdisk命令查看磁盘信息,fdisk命令是直接查询mbr分区表的信息
- 备份mbr分区信息
[root@linuxidc ~]#dd if=/dev/sda of=/tmp/mbr bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00102281 s, 501 kB/s
读取/dev/sda设备中读取数据,并存储到/tmp/mbr文件中,块大小为1字节,数目为512个
- 修改mbr分区信息
[root@linuxidc ~]#dd if=/dev/zero of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0019455 s, 263 kB/s
把/dev/sda分区表的512个字节数据全部数据改为0
- 查看mbr分区信息
[root@linuxidc ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
# 显示不出磁盘分区的具体信息了
- 修复磁盘分区信息
[root@linuxidc ~]#dd if=/tmp/mbr of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0012424 s, 412 kB/s
理论篇到此就结束了,欢饮阅读下一篇实践篇
注意:这些实验具有一定的破坏性,强烈建议不要在生产环境下操作,在虚拟机上操作上时,最好进行快照处理,以便于造成不可恢复性的操作时,可以使用快照功能将系统恢复到操作前的状态。
hexdump /dev/sda -C -n 512
# hexdump命令可查看二进制文件,也可以直接查看硬盘数据
-C选项,以十六进制显示数据
-n选项,读取输入数据的字节个数
- 显示结果
...
000001d0 07 19 83 fe ff ff 00 48 06 00 00 00 80 02 00 fe |.......H........|
000001e0 ff ff 83 fe ff ff 00 48 86 02 00 00 40 01 00 fe |.......H....@...|
000001f0 ff ff 05 fe ff ff 00 48 c6 03 00 b8 39 15 55 aa |.......H....9.U.|
00000200
# 最后几行的结果
- 显示结果倒数第二行,最后四个字母“55 aa”,可见MBR扇区最后两个字节为“55aa”. 可以将其修改,然后reboot(注:不要在生产环境下操作),机器就启动不了,可以通过救援模式将这两个字节修改为”55 aa”.
修改MBR扇区数据
下面“破坏”mbr扇区数据
- 查看分区信息是否正常
[root@linuxidc ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000455a4
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 2637 20971520 83 Linux
/dev/sda3 2637 3942 10485760 83 Linux
/dev/sda4 3942 26109 178052096 5 Extended
/dev/sda5 3943 4204 2097152 82 Linux swap / Solaris
/dev/sda6 4204 26109 175952896 83 Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
使用fdisk命令查看磁盘信息,fdisk命令是直接查询mbr分区表的信息
- 备份mbr分区信息
[root@linuxidc ~]#dd if=/dev/sda of=/tmp/mbr bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00102281 s, 501 kB/s
读取/dev/sda设备中读取数据,并存储到/tmp/mbr文件中,块大小为1字节,数目为512个
- 修改mbr分区信息
[root@linuxidc ~]#dd if=/dev/zero of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0019455 s, 263 kB/s
把/dev/sda分区表的512个字节数据全部数据改为0
- 查看mbr分区信息
[root@linuxidc ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
# 显示不出磁盘分区的具体信息了
- 修复磁盘分区信息
[root@linuxidc ~]#dd if=/tmp/mbr of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0012424 s, 412 kB/s
理论篇到此就结束了,欢饮阅读下一篇实践篇
下面“破坏”mbr扇区数据
[root@linuxidc ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000455a4
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 2637 20971520 83 Linux
/dev/sda3 2637 3942 10485760 83 Linux
/dev/sda4 3942 26109 178052096 5 Extended
/dev/sda5 3943 4204 2097152 82 Linux swap / Solaris
/dev/sda6 4204 26109 175952896 83 Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
使用fdisk命令查看磁盘信息,fdisk命令是直接查询mbr分区表的信息
[root@linuxidc ~]#dd if=/dev/sda of=/tmp/mbr bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.00102281 s, 501 kB/s
读取/dev/sda设备中读取数据,并存储到/tmp/mbr文件中,块大小为1字节,数目为512个
[root@linuxidc ~]#dd if=/dev/zero of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0019455 s, 263 kB/s
把/dev/sda分区表的512个字节数据全部数据改为0
[root@linuxidc ~]#fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
# 显示不出磁盘分区的具体信息了
[root@linuxidc ~]#dd if=/tmp/mbr of=/dev/sda bs=1 count=512
512+0 records in
512+0 records out
512 bytes (512 B) copied, 0.0012424 s, 412 kB/s
理论篇到此就结束了,欢饮阅读下一篇实践篇
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2017-10/148093p2.htm
Linux中磁盘mbr分区——实践篇
fdisk命令
语法
语法
fdisk(选项)(参数)
选项
-b <分区大小> 指定每个分区的大小
-l 列出分区表信息
-v 显示版本信息
参数
-b <分区大小> 指定每个分区的大小
-l 列出分区表信息
-v 显示版本信息
设备文件:例如/dev/sda
实例
选择要操作的磁盘:
[root@linuxidc ~]#fdisk /dev/sdb
输入m可列出可以执行的命令:
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition # 删除分区
l list known partition types # 显示已知的分区类型
m print this menu # 显示帮助菜单
n add a new partition # 添加分区
o create a new empty DOS partition table
p print the partition table # 查看分区表
q quit without saving changes # 不保存退胡
s create a new empty Sun disklabel
t change a partition's system id # 该表分区的系统id
u change display/entry units
v verify the partition table
w write table to disk and exit # 保存分区并退出
x extra functionality (experts only)
查看分区表:
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x48283ee0
Device Boot Start End Blocks Id System
新建分区表:
Command action #选择新增分区类型
e extended #扩展分区
p primary partition (1-4) #主分区
p // 键入p
Partition number (1-4): 1 // 键入1
First cylinder (1-1305, default 1): # 选择分区起点柱面
Using default value 1 //选择默认1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +1G #设置分区大小1G,+表示往起点后添加,-表示往起点前添加分区
查看确认分区创建成功:
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes # 磁盘总大小 10.7GB
255 heads, 63 sectors/track, 1305 cylinders # 255个磁头,每个磁道63个扇区,1305个圆柱面
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x48283ee0
Device Boot Start End Blocks Id System
/dev/sdb1 1 132 1060258+ 83 Linux
再建立一个扩展分区
Command (m for help): n
Command action e extended p primary partition (1-4) e Partition number (1-4): 4 # 分区号 First cylinder (133-1305, default 133): 900
Last cylinder, +cylinders or +size{K,M,G} (900-1305, default 1305): +500M # 扩展分区500M
在扩展分区中创建逻辑分区
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4) l
First cylinder (900-964, default 900):
Using default value 900 Last cylinder, +cylinders or +size{K,M,G} (900-964, default 964): +100M # 逻辑分区100M
查看分区列表
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x48283ee0
Device Boot Start End Blocks Id System
/dev/sdb1 1 132 1060258+ 83 Linux
/dev/sdb4 900 964 522112+ 5 Extended
/dev/sdb5 900 913 112423+ 83 Linux
保存退出
Command (m for help): w # 保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
查看
[root@linuxidc ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 3.7G 0 rom
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 20G 0 part /data
├─sda3 8:3 0 10G 0 part /home
├─sda4 8:4 0 1K 0 part
├─sda5 8:5 0 2G 0 part [SWAP]
└─sda6 8:6 0 167.8G 0 part /
sdb 8:16 0 10G 0 disk # 显示分区成功
├─sdb1 8:17 0 1G 0 part
├─sdb4 8:20 0 1K 0 part
└─sdb5 8:21 0 109.8M 0 part
分区成功,当然,要使用磁盘,还需要进行两部操作,才能使用磁盘——将磁盘挂载在具体目录(或文件),和对个分区进行格式化。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/148093.htm