私は私の目的のためにクラウドにBTRFSファイルシステムを自動的に作成することに取り組んでいます。正直言って、このプロセスは少し迷惑で、このプロセスから取り除きたいいくつかのステップがあります。
私のプロセスは現在次のとおりです。
parted /dev/sdX mklabel gpt
parted /dev/sdX mkpart primary 2048s 100%
mkfs.btrfs /dev/sdXY
LVMハッキングを実行してください。pvcreate /dev/sdXY
vgcreate mygroup /dev/sdXY
lvcreate -l 100%FREE -n mylv mygroup
MOUNTDIR="$(mktemp -d)"
mount -t btrfs -o defaults,ssd,compress=lzo /dev/sdXY $MOUNTDIR
btrfs subvolume create $MOUNTDIR/root
umount $MOUNTDIR
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ファイルシステムを作成し、マウントを解除してブロックレベルのイメージを取得することです。その後、画像はクッキーカッタースタイルで多くの新しいブロックデバイスに配布されます。しかし、これは役に立ちません。これは、基本ブロックデバイスのサイズに合わせてファイルシステムのサイズを変更(増分)するためにファイルシステムをマウントする必要があるためです。