マウントされていないファイルシステムにbtrfsサブボリュームを作成する

マウントされていないファイルシステムにbtrfsサブボリュームを作成する

私は私の目的のためにクラウドにBTRFSファイルシステムを自動的に作成することに取り組んでいます。正直言って、このプロセスは少し迷惑で、このプロセスから取り除きたいいくつかのステップがあります。

私のプロセスは現在次のとおりです。

  1. parted /dev/sdX mklabel gpt
  2. parted /dev/sdX mkpart primary 2048s 100%
  3. mkfs.btrfs /dev/sdXYLVMハッキングを実行してください。
    1. pvcreate /dev/sdXY
    2. vgcreate mygroup /dev/sdXY
    3. lvcreate -l 100%FREE -n mylv mygroup
  4. MOUNTDIR="$(mktemp -d)"
  5. mount -t btrfs -o defaults,ssd,compress=lzo /dev/sdXY $MOUNTDIR
  6. btrfs subvolume create $MOUNTDIR/root
  7. umount $MOUNTDIR
  8. echo "UUID=$(blkid -s UUID -o value /dev/sdXY) /mount/dir btrfs defaults,ssd,compress=lzo,subvol=root 0 0" >> /etc/fstab

そのプロセスは醜いですが効果的です。

ファイルシステムをマウントせずにサブボリュームを作成して手順4〜7を削除する方法はありますか?

ベストアンサー1

私はそうは思わない。

Btrfsは、オンラインでさまざまなタスク、つまりファイルシステムのマウントを実行するように設計されています。これは、カーネルドライバでオンラインで一度、ユーザースペースツールでオフラインで一度、すべてを2回エンコードするのを避けるための良い方法です。このエントリを2回コーディングしないと、バグが減り、カーネルとユーザースペースの機能が何らかの方法で変わる可能性が低くなります。

私が考えたもう1つのアプローチは、必要なすべての設定とサブボリュームを含む小さなBtrfsファイルシステムを作成し、マウントを解除してブロックレベルのイメージを取得することです。その後、画像はクッキーカッタースタイルで多くの新しいブロックデバイスに配布されます。しかし、これは役に立ちません。これは、基本ブロックデバイスのサイズに合わせてファイルシステムのサイズを変更(増分)するためにファイルシステムをマウントする必要があるためです。

おすすめ記事