fdisk
是一个用于操作 Linux 系统中的磁盘分区表的命令行工具。它支持创建、删除、修改和查看磁盘分区,常用于手动配置硬盘。fdisk
适用于 MBR(主引导记录)和 GPT(GUID 分区表)分区格式的磁盘。
fdisk
命令的基本用法
fdisk [选项] <磁盘设备>
例如,操作 /dev/sda
磁盘:
sudo fdisk /dev/sda
常用选项
-l
: 列出所有磁盘及其分区表信息。sudo fdisk -l
-u
: 显示单位为扇区,而不是块。-n
: 非交互模式(常用于脚本),创建新的分区。-t
: 更改分区表类型(适用于某些特殊设备)。
交互命令
fdisk
进入磁盘后,会显示交互式提示符,用户可以输入各种命令来管理分区:
1. m
: 显示帮助菜单
输入 m
可以显示所有可用命令及其说明。
Command (m for help): m
2. p
: 显示当前磁盘的分区表
使用 p
可以查看磁盘上已有的分区及其详细信息。
Command (m for help): p
输出示例:
Disk /dev/sda: 100.0 GB, 100000000000 bytes
255 heads, 63 sectors/track, 12158 cylinders, total 195312500 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 19531775 9764864 83 Linux
/dev/sda2 19531776 195312499 87890362 5 Extended
3. n
: 创建新分区
使用 n
创建新分区,fdisk
会提示选择主分区或扩展分区,然后指定分区号、起始扇区和结束扇区。
示例:
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (2048-195312499, default 2048): 4096
Last sector, +sectors or +size{K,M,G,T,P} (4096-195312499, default 195312499): +10G
p
: 创建主分区(primary partition)。e
: 创建扩展分区(extended partition)。- First sector: 起始扇区,通常直接回车选择默认值。
- Last sector: 结束扇区,或通过
+size
形式指定大小,例如+10G
表示分区大小为 10GB。
4. d
: 删除分区
输入 d
然后选择分区号,即可删除对应分区。
Command (m for help): d
Partition number (1-4): 2
5. t
: 更改分区类型
通过 t
命令更改某个分区的文件系统类型。输入 t
后选择分区号,再输入类型 ID(如 83
表示 Linux 分区,82
表示 Swap 分区)。
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list all codes): 82
6. l
: 列出所有分区类型代码
输入 l
可以列出所有支持的分区类型及其代码。
Command (m for help): l
输出示例:
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
7. w
: 保存分区表并退出
完成分区操作后,输入 w
保存更改并退出。此时新分区表会写入磁盘。
Command (m for help): w
8. q
: 不保存退出
如果在操作过程中想要放弃对分区表的修改,可以输入 q
退出,修改不会保存。
9. v
: 验证分区表
输入 v
检查分区表是否有错误。
10. x
: 进入专家模式
x
命令用于进入专家模式,允许执行更高级的分区表操作,如手动修改分区起始扇区和结束扇区。
常用操作示例
1. 查看所有磁盘及其分区表
sudo fdisk -l
2. 为 /dev/sdb
创建新分区
sudo fdisk /dev/sdb
- 输入
n
创建新分区。 - 输入
p
选择主分区。 - 选择分区编号(如
1
)。 - 指定分区大小(如
+20G
创建一个 20GB 的分区)。 - 输入
w
保存更改并退出。
3. 更改分区类型为 Linux Swap
sudo fdisk /dev/sda
- 输入
t
选择分区类型。 - 选择分区编号(如
2
)。 - 输入
82
设置分区类型为 Linux Swap。 - 输入
w
保存并退出。
4. 删除分区
sudo fdisk /dev/sdb
- 输入
d
。 - 选择要删除的分区编号(如
1
)。 - 输入
w
保存并退出。
注意事项
- 使用
fdisk
修改分区表可能会丢失数据,操作前务必备份数据。 - 对于大于 2TB 的磁盘,推荐使用 GPT 分区表,可以使用
parted
命令处理 GPT 磁盘。