既存のファイルシステムがあるベアドライブにパーティションテーブルを作成できますか?

既存のファイルシステムがあるベアドライブにパーティションテーブルを作成できますか?

ext4ドライブにファイルシステムがあるマシンを継承しました。パーティションなし(他のクールなもの、LVMなどはありません)。

このドライブにパーティションテーブルを作成できますか?そして既存のext4ファイルシステムを保存しますか? - つまり、何らかの方法でパーティションを少し縮小し、スーパーブロックを移動してパーティションテーブルを作成しますか?

(明らかに、サイズ変更はデータの損失などのリスクを引き起こす可能性があります。これは主に学術的な質問です。)

$ lsblk /dev/sdc
NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sdc    8:32   0 54.6T  0 disk /data

$ tune2fs -l /dev/sdc
...
First block:              0
...

$ fdisk -l /dev/sdc
Disk /dev/sdc: 54.57 TiB, 60001666203648 bytes, 117190754304 sectors
Disk model: LOGICAL VOLUME
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 786432 bytes

$

答え1

これは非常にトリッキーであり、最高のアドバイスは、このような作業を試みる前にドライブをバックアップすることです。ドライブの内容をすべてコピーし、パーティションを分割して再度コピーする方がはるかに簡単です。

この方法を試す必要がある場合は、高レベルで次のものが必要です。

  1. 既存のファイルシステムのサイズを変更するには、resize2fs を使用します。既存のパーティションを縮小すると、追加のスペースが作成されます。終わり(始まっていない)
  2. ファイルシステム全体をドライブの先頭から右に移動します。 GPTパーティションテーブルには少なくとも17kが必要ですが、1MBがより安全になる可能性があります。 ddrescueはこれを行うことができます。しかし、新しい場所が古い場所と重なる場合は注意してください。。誤ってデータを削除する可能性があります。
  3. 選択したパーティションツール(cfdiskなど)を使用して、手順2でデータを配置したパーティションを作成します。このパーティションをフォーマットしないでください。

繰り返しますが、これは望ましくなく、データを台無しにすることができるかどうかわからないため、意図的にコマンドの指示を提供しません。

関連情報