Ubuntuインストーラー(マウントされたISOイメージから)を使用して、VPSにUbuntu 18.04サーバーをインストールしました。インストールの手動パーティション分割フェーズで、ファイルシステムタイプとしてBTRFSを選択しました。
インストールが完了したので、サーバー以外のインストールで通常表示されるような@
または@home
が表示されません。ここでは@home
サブボリュームは気にしませんが、/
にトップレベルのボリュームをマウントしたくありません。
lsblk:
vda 252:0 0 25G 0 disk
|-vda1 252:1 0 1M 0 part
|-vda2 252:2 0 20G 0 part /
`-vda3 252:3 0 5G 0 part [SWAP]
結果は生成されません:
btrfs su li /
私はこれを次に試しました:
btrfs filesystem show | awk '/ path /{print $NF}'
/dev/vda2
そして:
# findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/vda2 btrfs rw,relatime,space_cache,subvolid=5,subvol=/
18.04サーバーのインストール中にBTRFSサブボリュームを作成するにはどうすればよいですか?
@
(/
の場合)と@varlog
(/var/log
の場合)、その他を作成したいと思います。
1時間ごとのスナップショットにSnapperを使用したいと思います。 BTRFSとSnapperを使用してUbuntuサーバーをセットアップするための推奨される方法はありますか?
次の方法で/
をサブボリュームに移動できます。
ファイルシステムのスナップショットを作成します。
btrfs sub snap / /@
新しいサブボリュームを/mnt
にマウントします。
mount -o subvol=@ /dev/vda2 /mnt
サブボリュームにchrootします。
cd /mnt
mount -o bind /dev dev
mount -o bind /sys sys
mount -o bind /proc proc
chroot /mnt
update-grub
exit
オプションとして/mnt/@/etc/fstab
を追加subvol=@
を追加します。
リブート。サブボリュームから起動します。それが事実であることを確認してください
mount | grep vda2
それは次のように表示されるはずです
/dev/vda2 on / type btrfs (rw,relatime,space_cache,subvolid=257,subvol=/@)
/@
以外の内容を削除できます。Ubuntu Server 20.04で動作するソリューションは次のとおりです。最初の起動前に@
サブボリュームを作成し、/
ボリュームからすべてのファイルを削除します。
Sudo -i
umount /target/boot/efi
umount -l /target/run
umount /target/cdrom
他のマウントポイントがある場合(つまり、/home
)、それらもマウント解除します。@
サブボリュームを作成し、すべてのファイルをそのボリュームに移動します:cd /target
btrfs subvolume create @
ls | grep -v @ | xargs mv -t @
@
サブボリュームを指すように再度マウントします。また、追加のマウントオプションをいくつか定義する良い機会でもあります(この例では、SSDデバイスの推奨オプションがいくつかあります)。 BTRFSボリュームが/dev/sda2
(適切に調整)未満であると思います。cd /
umount /target
mount -o subvol=@,ssd,noatime,space_cache,commit=120,compress=zstd:2 /dev/sda2 /mnt
chroot
を使用してシステムに切り替えます(ブートパーティションは/dev/sda1
であると想定しています)mount /dev/sda1 /target/boot/efi
mount --bind /proc /target/proc
mount --bind /dev /target/dev
mount --bind /sys /target/sys
chroot /target
他のパーティションを作成した場合(つまり、/home
)、ここにもマウントしますfstab
を開きます:vi /etc/fstab
BTRFSパーティションで行を更新します。つまり、UUID=xxx / btrfs default,subvol=@,ssd,noatime,space_cache,commit=120,compress=zstd:2 0 0
/dev/sda
を想定しています)update-initramfs -u -k all
grub-install --recheck /dev/sda
update-grub
exit
@
サブボリュームで起動するはずです。