![具有两个可用空间行的分区输出](https://linux22.com/image/4651/%E5%85%B7%E6%9C%89%E4%B8%A4%E4%B8%AA%E5%8F%AF%E7%94%A8%E7%A9%BA%E9%97%B4%E8%A1%8C%E7%9A%84%E5%88%86%E5%8C%BA%E8%BE%93%E5%87%BA.png)
我有一个具有以下分区的磁盘:
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print free
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
0.00B 511B 512B Free Space
1 512B 4302MB 4302MB primary ext3 type=83
2 4302MB 15.0GB 10.7GB primary ext3 type=83
3 15.0GB 15.2GB 140MB primary linux-swap(v1) type=82
4 15.2GB 85.9GB 70.7GB extended type=05
5 15.2GB 16.3GB 1078MB logical type=83
6 16.3GB 75.1GB 58.8GB logical type=83
7 75.1GB 85.8GB 10.7GB logical ext3 type=83
8 85.8GB 85.9GB 70.3MB logical type=83
85.9GB 85.9GB 3545kB Free Space
85.9GB 85.9GB 2747kB Free Space
问题是为什么分开的输出中显示两个“可用空间”行?这是正常现象还是与磁盘初始分区有关的问题?如果可以,那么如何使用parted将它们合并为一个呢?
这是输出fdisk -l /dev/sda
Disk /dev/sda: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders, total 167772160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00002eb8
Device Boot Start End Blocks Id System
/dev/sda1 1 8401994 4200997 83 Linux
/dev/sda2 8401995 29382884 10490445 83 Linux
/dev/sda3 29382885 29655989 136552+ 82 Linux swap / Solaris
/dev/sda4 29655990 167766794 69055402+ 5 Extended
/dev/sda5 29655991 31760504 1052257 83 Linux
/dev/sda6 31760506 146641319 57440407 83 Linux
/dev/sda7 146641321 167622209 10490444+ 83 Linux
/dev/sda8 167622656 167759871 68608 83 Linux
答案1
在查看您的输出时,我认为您有几个不连续的扇区块,因此当您打印parted
这些块中的分区时,它们将显示为多个可用空间块。
默认输出parted
使得这一点很难看到,因此我建议将单位从基于大小(kB、MB、GB 等)更改为扇区。您可以交互unit s
地使用该命令parted
,也可以在调用它时更改它。
例子
这是我的 Fedora 19 系统上的默认视图。
$ sudo parted /dev/sda
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: ATA ST95005620AS (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary ext4 boot
2 525MB 500GB 500GB primary lvm
(parted)
现在我们可以像这样更改单位:
(parted) unit s
(parted) print
Model: ATA ST95005620AS (scsi)
Disk /dev/sda: 976773168s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 1026047s 1024000s primary ext4 boot
2 1026048s 976773119s 975747072s primary lvm
(parted)
或者我们可以在调用时将其设置为默认值,parted
如下所示:
$ sudo parted /dev/sda unit s print
Model: ATA ST95005620AS (scsi)
Disk /dev/sda: 976773168s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 1026047s 1024000s primary ext4 boot
2 1026048s 976773119s 975747072s primary lvm
$
整合自由空间
如果是这种情况,那么您将需要使用dd
或gparted
移动任何导致此可用空间被分割的分区,以便您可以利用它。
我本以为你可以使用以下命令来执行此操作parted
,但在研究如何执行此操作时,该move
命令似乎已从 2.4 及更高版本中删除parted
。
摘自分开的文档
请注意,在 2.4 版本之后,删除了以下命令:check、cp、mkfs、mkpartfs、move、resize。
笔记:这里还有一个标题为:使用parted-3.0调整分区大小/移动分区其中一位开发人员讨论了删除这些命令的原因。
有关使用此移动的详细信息,dd
请参阅此 SU 问答,标题为:如何在 GNU/Linux 中移动分区?。
不过,我鼓励您使用以下命令来执行此操作gparted
。我已经使用过几次gparted
并且从未遇到任何问题,因为它为您完成了很多繁重的工作。使用dd
&fdisk
虽然可能,但可能很棘手。
本教程应该帮助您开始使用gparted
标题为:使用 GParted 修改分区而不丢失数据。