7.2.3 分区管理
通过fdisk交互模式中的各种指令,可以对磁盘的分区进行有效的管理。接下来将介绍如何在fdisk交互模式下完成查看分区、添加分区、修改分区类型以及删除分区的操作。
1.查看分区
要显示磁盘当前的分区表,在fdisk交互模式中输入p指令,其运行结果如下所示。
Command (m for help): p //输入p指令查看磁盘分区表
Disk /dev/hda: 81.9 GB, 81964302336 bytes //磁盘设备文件名以及磁盘大小
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System //磁盘分区列表
/dev/hda1 * 1 650 5221093+ b W95 FAT32
/dev/hda2 651 9506 71135820 f W95 Ext'd (LBA)
/dev/hda5 651 905 2048256 b W95 FAT32
/dev/hda6 906 1288 3076416 7 HPFS/NTFS
/dev/hda7 1289 7537 50194934 83 Linux
/dev/hda8 7538 7728 1534176 82 Linux swap / Solaris
该命令将列出系统中当前的所有分区,其功能与fdisk –l命令是一样的。
2.添加分区
添加一个新的逻辑分区,其命令如下所示。
Command (m for help): n //输入n指令创建一个新的分区
Command action
l logical (5 or over) //l为逻辑分区
p primary partition (1-4) //p为主分区
l //选择分区的类型为逻辑分区
First cylinder (7729-9506, default 7729): 7729 //输入扇区的开始位置,默认为 7729,即hda8扇区的结束位置+1
Last cylinder or +size or +sizeM or +sizeK (7729-9506, default 9506): 7919 //输入扇区的结束位置,默认为9506,即整个磁盘的最后一个扇区
Command (m for help): p //输入p指令查看更改后磁盘分区表
Disk /dev/hda: 81.9 GB, 81964302336 bytes //磁盘设备文件名以及磁盘大小
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System //分区列表
/dev/hda1 * 1 650 5221093+ b W95 FAT32
/dev/hda2 651 9506 71135820 f W95 Ext'd (LBA)
/dev/hda5 651 905 2048256 b W95 FAT32
/dev/hda6 906 1288 3076416 7 HPFS/NTFS
/dev/hda7 1289 7537 50194934 83 Linux
/dev/hda8 7538 7728 1534176 82 Linux swap / Solaris
/dev/hda9 7729 7919 1534176 83 Linux
//添加了一个hda9分区
可以看到,新添加的分区为/dev/hda9,开始位置为7729,结束为7919,总大小为1534176,类型为Linux分区。
3.修改分区类型
对于新添加的分区,系统默认的分区类型为83,即Linux分区。如果希望将其更改为其他类型,可以通过t指令来完成。本例中操作的磁盘分区为/dev/hda9,如下所示。
Command (m for help): t //输入t指令改变分区的类型
Partition number (1-9): 9 //操作分区为/dev/hda9
如果用户不清楚都有哪些分区类型可供选择,可以执行l指令,fdisk会列出所有支持的分区类型及对应的类型号码,如下所示。
Hex code (type L to list codes): l //显示所有可用的分区类型
0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M/CTOS/.
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT- 12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secon dary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
其中82为Linux swap分区、83为Linux分区、8e为Linux LVM分区、b为Windows FAT32分区、e为Windows FAT16分区。这里选择分区类型为82,如下所示。
Hex code (type L to list codes): 82 //输入分区的新类型(82为Linux swap / Solaris)
Changed system type of partition 9 to 82 (Linux swap / Solaris)
最后,输入p命令查看更改后磁盘分区表,如下所示。
Command (m for help): p //输入p指令查看更改后的磁盘分区表
Disk /dev/hda: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System //系统分区表
/dev/hda1 * 1 650 5221093+ b W95 FAT32
/dev/hda2 651 9506 71135820 f W95 Ext'd (LBA)
/dev/hda5 651 905 2048256 b W95 FAT32
/dev/hda6 906 1288 3076416 7 HPFS/NTFS
/dev/hda7 1289 7537 50194934 83 Linux
/dev/hda8 7538 7728 1534176 82 Linux swap / Solaris
/dev/hda9 7729 7919 1534176 82 Linux swap / Solaris
可以看到分区/dev/hda9的类型已被更改为Linux swap / Solaris。
4.删除分区
如果删除第5个逻辑分区,即hda9,其命令如下:
Command (m for help): d //输入d指令删除分区
Partition number (1-9): 9 //指定需要删除的分区号,即hda9
Command (m for help): p //输入p指令查看更改后磁盘分区表
Disk /dev/hda: 81.9 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System //系统分区表
/dev/hda1 * 1 650 5221093+ b W95 FAT32
/dev/hda2 651 9506 71135820 f W95 Ext'd (LBA)
/dev/hda5 651 905 2048256 b W95 FAT32
/dev/hda6 906 1288 3076416 7 HPFS/NTFS
/dev/hda7 1289 7537 50194934 83 Linux
/dev/hda8 7538 7728 1534176 82 Linux swap / Solaris
//hda9已经被删除
如果选择删除的是扩展分区,则扩展分区下的所有逻辑分区都会被自动删除。
5.保存修改结果
要保存分区修改结果,其命令如下:
Command (m for help): w //输入w指令保存修改结果
The partition table has been altered!
Calling ioctl() to re-read partition table.
//警告信息
WARNING: Re-reading the partition table failed with error 16: Device or resource
busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
使用w指令保存后,则在fdisk中所做的所有操作都会生效,且不可回退。如果分区表正忙,则需要重启机器后才能使新的分区表生效。
%注意:如果因为误操作,对磁盘分区进行了修改或删除操作,只需要输入q指令退出fdisk,则本次所做的所有操作均不会生效。退出后用户可以重新进入fdisk中继续进行操作。