fdisk - Linux分区表操作工具软件
- 这里的测试我一般都会给虚拟机添加一个新的硬盘进行操作,同时要记住 fdisk命令只能root进行操作
- 在 Windows 底下,磁盘分割是以 A, B, C, D, … 等等的方式来划分的,然而在 Linux 或 Unix系统之下,却是以目录来代表,也就是说, 一个目录很可能就是一个扇区了!
fdisk -l
查看硬盘及分区信息,可以查看一下即将分区的磁盘信息。
[root@smx ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00001f07
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
使用fdisk进行分区的时候,命令都可以在最初通过m来获取帮助,不用特地去记住命令。
- 对sdb进行分区
fdisk /dev/sdb
,并查看帮助m
- 这边需要注意的是我们可以看到sda有sda1和sda2,但是当我们进行分区时,不能使用命令fdisk
/dev/sda1,不允许携带数字,会发生错误。
[root@smx ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xfc7cc39f 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
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
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
输出目前磁盘的状态信息p
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xfc7cc39f
设备 Boot Start End Blocks Id System
不存储,直接退出界面,q
- 当发生磁盘更改错误而又无法修改时,可以尝试使用q不写入直接退出,在进行重新的操作。
命令(输入 m 获取帮助):q
[root@smx ~]#
新增一个磁盘分割槽n
[root@smx ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x9364107a 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
- 根据给出的提示,我们这里先创建一个主分区
p
- 分区号可以在1-4中任意选择
- 起始扇区可以根据自己的大小随意设定,这里直接使用了默认值,按回车即可
- 分区结束位置,单位为扇区。
我们知道 partition 是由 n1 到 n2 的磁柱 (cylinder), 但是我们对于磁柱的大小不容易掌握!这个时候可以填入
+1024M 来让系统自动帮我们找出 『最接近 1024M 的那个 cylinder 号码』!因为不可能刚好等于 1024MBytes 啦
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1024M
分区 1 已设置为 Linux 类型,大小设为 1 GiB
- 使用
p
查看磁盘信息,确认是否添加正确 - 显示磁盘文件名和容量 “磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区”
- 显示装置文件名“设备”
- 是否为启动引导块?通常 Windows 系统的 C 需要这块!“Boot”
- 开始磁柱“Start”、结束磁柱“End”
- 以 1K 为单位的容量"Blocks"
- 磁盘分区槽内的系统 “Id System”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9364107a
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
命令(输入 m 获取帮助):
- 根据给出的提示,我们再创建一个扩展分区
e
- 1-4 号是磁盘保留的号码,所以这个号码可以随意设定,大家可以随意设置,但是逻辑分区一定是从5开始累加的。
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
分区号 (2-4,默认 2):2
起始 扇区 (2099200-41943039,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-41943039,默认为 41943039):
将使用默认值 41943039
分区 2 已设置为 Extended 类型,大小设为 19 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9364107a
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 41943039 19921920 5 Extended
命令(输入 m 获取帮助):
- 根据给出的提示,我们最后来创建一个逻辑分区
l
- List item
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (2101248-41943039,默认为 2101248):
将使用默认值 2101248
Last 扇区, +扇区 or +size{K,M,G} (2101248-41943039,默认为 41943039):
将使用默认值 41943039
分区 5 已设置为 Linux 类型,大小设为 19 GiB
- 这样新写入的三个磁盘中,sbd1和sd5是可用的,而sdb2是不可用的。
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9364107a
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 41943039 19921920 5 Extended
/dev/sdb5 2101248 41943039 19920896 83 Linux
命令(输入 m 获取帮助):
写入更改的磁盘信息w
,即保存
- 有些情况会让你重启计算机而达到更改成功,有些不需要重启。可以在w之后查看是否有reboot信息。
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@smx ~]#
删除分区d
命令(输入 m 获取帮助):d
分区号 (1,2,5,默认 5):5
分区 5 已删除
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9364107a
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 41943039 19921920 5 Extended
命令(输入 m 获取帮助):q
[root@smx ~]#
- 需要注意的是一般创建好分区后都需要格式化分区。