現在、Arch Linuxをインストールしていますが、物理ボリュームを作成しようとすると、このエラーが発生します。
Can not use /dev/sda: device is partitioned
このエラーは何ですか?どのように削除できますか?
PS:ディスクをフォーマットしました。mkfs.ext4 /dev/sda
答え1
最初の試みでは、pvcreate -ff /dev/vdh
ディスクにパーティションが含まれているかどうかに関係なく動作しませんでした。
pvcreate -ff /dev/vdh
Cannot use /dev/vdh: device is partitioned
wipefs
最初にすべてのメタデータを削除するには、それを使用する必要があります。
root@nextcloud:~ # wipefs --all --backup /dev/vdh
/dev/vdh : 8 bytes were erased at index 0x00000200 (gpt) : 45 46 49 20 50 41 52 54
/dev/vdh : 8 bytes were erased at index 0x9c3fffffe00 (gpt) : 45 46 49 20 50 41 52 54
/dev/vdh : bytes were erased at index 0x000001fe (PMBR) : 55 aa
/dev/vdh : ioctl call to reread partition table: Success
これにより、ボリュームの作成が正しく行われます。
pvcreate -ff /dev/vdh
Physical volume "/dev/vdh" successfully created.
たぶん私はあまりにも早く進んでオプションなしでテストしていないかもしれません-ff
。
答え2
後で参照できるように、次の2つの状況があります。
1. パーティションがない場合
これは、GPT(GUIDパーティションテーブル)がある場合に発生する可能性があります。残念ながらこれは動作しません-f
(参照バグレポート)
fdisk -l /dev/sda
たとえば、保持しているパーティション表を確認できます。
解決策は、GPTを古いBIOSテーブルに置き換えることです。割れた:
Device
/Create Partition Table...
- 新しいパーティションテーブルを選択します。
msdos
または別れた:
parted /dev/sda
mktable msdos
quit
その後、物理ボリュームを作成できるはずです。
pvcreate /dev/sda
pvcreateは、パーティションテーブルで見つかったdos署名を消去することを提案できます。そうすることは安全です。
2. ディスクにすでにパーティションがある場合
これは安全対策であるため、-f
上書きできません。
新しいテーブルを作成するとすべてが削除されるため、上記と同じソリューションを使用してパーティションを削除できます。を使用するなど、これを行う他の方法がありますが、fdisk
上記のソリューションを使用すると、GPTの問題を同時に解決できます。
答え3
/dev/sda
フルディスクです。通常(常にそうではない)ディスクを分割し、/dev/sda1
同じデバイス名を指定し、/dev/sda2
ファイルシステム、スワップスペース、LVM割り当てなどに使用します。
ファイルシステムがその中に配置されたため、/dev/sda
論理ボリューム管理()に割り当てることはできませんpvcreate
。 LVMツールは、ディスクがファイルシステムですでに使用されていることを正しく警告します。
本当にファイルシステムを破壊してLVMに置き換えるには、マニュアル(man pvcreate
)を読んで次を参照してください。
必須オプション[
-f
]は確認なしでPVを生成します。強制オプション(-ff
)を繰り返すと、PVが強制的に生成され、PVがすでにVGにあるかどうかなど、通常PVを防ぐチェックは無視されます。
答え4
ターゲットがパーティションテーブルなしでディスク全体に物理ボリュームを作成することを前提とする場合は、まず既存のパーティションテーブルをゼロにする必要があります。
dd if=/dev/zero of=/dev/sda bs=512 count=1
分割テーブルを使用しないことがベストプラクティスではない可能性があります。素朴なユーザーやオペレーティングシステムによって使用されていない破損したディスクとして誤って識別される可能性があります。
詳細については、次を参照してください。これ答え。