在安装 Linux Arch 之前使用 GNU Parted 对分区进行分区

在安装 Linux Arch 之前使用 GNU Parted 对分区进行分区

我正在启动 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

这是分区表的名称还是类型?

知道sdb3Windows 安装在另外一个分区上对于答案来说可能也很重要。

那么,我怎样才能将其增大sdb4到 20G 并缩小sdb2到 60G(已经 80G)而不影响其他分区?

答案1

在我看来 arch-wiki 是错误的。事情是这样的:

如果有人想缩小分区并将新的可用大小用于另一个新分区而不是先创建新分区,请执行以下操作:

  1. 选择具有现有文件系统的硬盘:

    parted /dev/sdX
    

X 代表字母(例如 ...sda)。您应该处于 parted 模式

(parted)
  1. 使用打印获取磁盘信息:

    print
    

现在,您可以看到所有具有 START / END 值的分区,这很重要。想象一下,一个饼图,其中 100% 是磁盘的最大大小。饼图的各个部分都有 START 值和 END 值,它们代表饼图与大小实体的度数。因此,我们通过将 END 值移到较低的角度来缩小分区。

  1. 缩小分区

    (parted) resizepart PartNumber NewEndValue
    

    例子:

    (parted) resizepart 1 10.0GB
    

NewEndValue 必须小于原始值。然后您必须有一个未定义的空间区域,例如

  Number  Start    End ...
   1      1049kB   10.0GB
   2      20.0GB   30.0GB
  1. 现在您可以创建一个从 10.0GB 到 20.0GB 的新分区:

    (parted) mkpart PART-TYPE FS-TYPE START END
    

    例子:

    (parted) mkpart primary ext4 10.0GB 20.0GB
    

相关内容