我正在启动 Linux Arch-ISO 和 RTFM,但在初学者指南和 Arch-wiki 的其他部分找不到我的特殊状态。
我有一块硬盘sdb
,想把分区sdb2
(实际上是 80G)分成 60G 和 20G 两个部分。我已经做了以下操作:
(parted) mkpart primary ext4 512B 100%
但是当我使用以下命令打印 sdb 信息时
parted /dev/sdb print
它显示 sdb4 没有文件系统,但是:
Sector size (logical/physical): 512B/512B
所以当我尝试:
mkfs.ext4 /dev/sdb4
我得到以下信息:
Device size reported to be zero. Invalid partition specified, or table wasn’t reread after running `fdisk`, due to a modified partition being busy and in use.
好吧,我不需要这个分区,但是我首先以较小的尺寸创建了它,这样我就可以缩小分区sdb2
并增大分区sdb4
,并使用一个作为交换,另一个用于系统。
附加信息:
Partition table: msdos
这是分区表的名称还是类型?
知道sdb3
Windows 安装在另外一个分区上对于答案来说可能也很重要。
那么,我怎样才能将其增大sdb4
到 20G 并缩小sdb2
到 60G(已经 80G)而不影响其他分区?
答案1
在我看来 arch-wiki 是错误的。事情是这样的:
如果有人想缩小分区并将新的可用大小用于另一个新分区而不是先创建新分区,请执行以下操作:
选择具有现有文件系统的硬盘:
parted /dev/sdX
X 代表字母(例如 ...sda)。您应该处于 parted 模式
(parted)
使用打印获取磁盘信息:
print
现在,您可以看到所有具有 START / END 值的分区,这很重要。想象一下,一个饼图,其中 100% 是磁盘的最大大小。饼图的各个部分都有 START 值和 END 值,它们代表饼图与大小实体的度数。因此,我们通过将 END 值移到较低的角度来缩小分区。
缩小分区
(parted) resizepart PartNumber NewEndValue
例子:
(parted) resizepart 1 10.0GB
NewEndValue 必须小于原始值。然后您必须有一个未定义的空间区域,例如
Number Start End ...
1 1049kB 10.0GB
2 20.0GB 30.0GB
现在您可以创建一个从 10.0GB 到 20.0GB 的新分区:
(parted) mkpart PART-TYPE FS-TYPE START END
例子:
(parted) mkpart primary ext4 10.0GB 20.0GB