異なるパーティションを使用して空き領域を浪費しないように、それぞれにサブボリュームを使用して、単一のBTRFSファイルシステム内に異なるLinuxディストリビューションをインストールしようとしています。
UEFIを実行しているラップトップを使用しており、次のパーティションスキームを使用したいと思いました。
sda1:すべてのシステムの/ boot/efiにマウントされたEFIブート
sda2:スワップ
sda3:BTRFSボリューム
sda3は、次のサブボリュームに「分割」されます。
/data:データのサブボリューム
/snapshots:スナップショットのサブボリューム
/os/DISTID:ディストリビューションDISTのサブボリューム(ディストリビューション用に1つ)
すべてのディストリビューションはGRUB2をインストールし、UEFIで必要なGRUBをロードするので、すべてのディストリビューションが他のディストリビューションを認識する必要はありません。
ArchとFuntooをインストールできましたが、OpenSUSEを/ os/suseサブボリュームにインストールするように設定できませんでした。
私は以下を試しました:
GRUBについて書いた調整は、次のことを意味します。
/boot/efi
にgrubをインストールします(ただし、GRUBのデータは/boot
に保持します)grub-mkconfig -o /boot/grug/grub.cfg
を実行して、ブートローダーを更新します誰かアイデアはありますか?私は何か見落としてますか?
私の経験から、OpenSUSE Leap 42.2/42.3インストーラーによるカスタム(スナッパー/ @表記以外)サブボリュームの処理は機能しません。さらに悪いことに、ブートローダーのインストールなど、一部のツールには問題があります。たとえば、私の場合、grubコアは/ boot/grub ...を指していたが、chrootから更新するときは/ grub ..だけである必要があります。このツールで現在の設定を確認できます: https://github.com/arvidjaar/bootinfoscript
とにかく、これは私がインストール後のセットアップや起動可能なバックアップに使用する方法です。
インストーラーによって数十のサブボリュームを作成することは避けてください。たとえば、インストールするだけです。パーティションのルート/デフォルトのサブボリューム(それが機能した場合)。
インストール後、レスキューシステムを起動して
次に、マウントされたサブボリュームの外側に2番目のディレクトリを作成します。すべてをそのディレクトリにバインドマウントします。
mount -o bind "/mnt/partition_root/sysroot_subvol" "/mnt/temp_sys_prep"
mount -o bind "/mnt/partition_root/sysroot_subvol/boot" "/mnt/temp_sys_prep/boot"
mount -o bind "/mnt/partition_root/sysroot_subvol/boot/efi" "/mnt/temp_sys_prep/boot/efi"
mount -o bind /proc "/mnt/temp_sys_prep/proc"
mount -o bind /sys "/mnt/temp_sys_prep/sys"
mount -o bind /dev "/mnt/temp_sys_prep/dev"
次に、/mnt/temp_sys_prep
に通常のchrootアプローチを使用します。 chrootで使用できます
grub2-install --no-nvram --recheck --efi-directory=/boot/efi /dev/disk/by-id/scsi-SATA...
、grub2-mkconfig -o /boot/grub2/grub.cfg
、mkinitrd
正しい順序がわかりません。 mkinitrdはおそらくgrubも呼び出します。