btrfs
ファイルシステムを使用してArch Linuxをインストールしようとしています。ドライブを準備するインストールプロセスを開始中に問題が発生しました。
まず、次のコマンドを使用して、以前のインストール試行ですべてのGTPおよびMBRレコードを消去し始めました。
gdisk /dev/sda
その後、このコマンドを使用してエキスパートモードに入り、次にx
このコマンドを使用してz
GTPおよび/またはMBRを削除します。
次に、fdisk
ドライブの合計容量(119 GBなど)を使用して新しいパーティションを作成します。
パーティションを作成してここに書き込んだ後、次のようにファイルシステムを作成しようとしました。
mkfs.btrfs /dev/sda1
しかし、エラーが発生します。
/dev/sda1 appears to contain an existing filesystem (btrfs)
どうやってそのようなことが起こりましたか?私がしたことはパーティションを作成するだけですが、どのようにbtrfsがファイルシステムタイプとしてすでに存在するのでしょうか?
答え1
パーティションを作成すると、以前に存在していた内容がすべて含まれます。たとえば、ファイルシステムを含むパーティションを削除し、それらの間にスペースを入れずにまったく同じ場所にパーティションを再作成すると、以前に存在していた完全なファイルシステムが得られます。新しいパーティションが以前のパーティションと同じ場所から始まりますが、大きい場合はファイルシステムを使用し続けるか(ファイルシステムがサポートしている場合)、拡張して追加のスペースを埋めることができます。新しいパーティションが小さい場合は、ファイルシステムを引き続き使用できます。ただし、削除する前に古いパーティションを新しいサイズに縮小する必要があります。
したがって、ここにファイルシステムがあるか、同じ場所から始まるパーティションに残っているファイルシステムの先頭があります。多くのバージョンでは、mkfs
既存のファイルシステムに見えるものを上書きすることを拒否します。これは通常、間違ったパーティションを指定したことを意味し、エラーは致命的である可能性があるためです。既存のファイルシステムを上書きするには、まず認識できないほど一部を消去する必要があります。 Linuxに付属wipefs
これを行うためのユーティリティです。
wipefs /dev/sda1
パーティションの先頭で十分なバイト(数メガバイトなど)をゼロにすることは、同じ効果を持つ傾向があります。
答え2
dd を使用すると、パーティション表を消去できます。 ddは成功しましたが、gdiskのzero機能が失敗したことを覚えています。 (データをバックアップしたことを確認してください。)
# dd if=/dev/zero of=/dev/sda bs=512 count=1024