パーティションをディスクの端に移動

パーティションをディスクの端に移動

PromoxにDebian 11を実行する仮想マシンがあります。ディスク容量を増やす必要があるため、Proxmox GUIでディスクのサイズを変更しました。ただし、ルートパーティションを拡大する必要があります。ルートパーティションがディスクの最後のパーティションである場合は問題ありませんが、今はディスクの真ん中にあるパーティションです。ルートパーティションのサイズを変更する前に、スワップパーティションをディスクの端に移動する必要があります。ただし、次の2つの条件を満たす必要があります。

  1. スワップパーティションは同じサイズを維持する必要があります
  2. 最終スワップパーティションはディスクレイアウトと正しく整列する必要があります。

ヘッドレスデバイスを開発しているので、CLIを使用する必要があります。別れが私に与えたのは次のとおりです。

(parted) print
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 68.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system     Name  Flags
 1      1049kB  2097kB  1049kB                        bios_grub
 2      2097kB  33.3GB  33.3GB  ext4
 3      33.3GB  34.4GB  1022MB  linux-swap(v1)        swap

(parted) print free
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sda: 68.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system     Name  Flags
        17.4kB  1049kB  1031kB  Free Space
 1      1049kB  2097kB  1049kB                        bios_grub
 2      2097kB  33.3GB  33.3GB  ext4
 3      33.3GB  34.4GB  1022MB  linux-swap(v1)        swap
        34.4GB  68.7GB  34.4GB  Free Space

既存のスワップパーティションを削除し、swapoff /dev/sda3partedで使用して削除する必要があることがわかります。

私の質問は:このディスクの終わりとまったく同じサイズで正しく整列されたスワップパーティションを作成するには、何を入力する必要がありますか?

注:私はスワップをファイルに置き換えたくありません。

答え1

ソートには、次のフラグを使用できます。

parted /dev/sda --align optimal

次に、ユニットを最初のステップに設定します。

unit MiB
print

個人的には、私はpdiskこの問題を処理するスクリプトを持っており、partedそれを非対話型で実行します。

#!/bin/sh
#
dev="$1"
shift
test 0 -eq $# && set -- print
parted "$dev" --align optimal unit MiB "$@"

それから

pdisk /dev/sda [<command>]

関連情報