grub2-install でerror: unknown filesystem.が出る
ブートローダの設定をしたい
インフラ系初心者です。よろしくお願いいたします。
AWSでルートボリュームの縮小を試みています。
ワーク用のインスタンスを別に作り、旧システムボリュームから新システムボリュームまでのrsyncでのコピーまではできました。
ですが、grub2-installをしようとするとerror: unknown filesystemとなってしまいます。(xfsを認識しない?)
(ブートローダがダメなので当たり前と思いますが)この状態で元のインスタンスにアタッチしても起動はしません。
この状況を解決したいです。
詳細状況
以下のサイトを参考にしています。
https://study-infra.com/aws-ebs-shrink/
https://blog.kuds.win/aws/reduce-ebs-size-ec2-linux/
デバイスの状況は以下の通りです。/mnt/oldにマウントされている/dev/xvdf1が旧システムボリューム、/mnt/newにマウントされている/dev/xvdg1が新システムボリュームとなっています。すでにコピー済み。
$df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/root ext4 7.6G 1.6G 6.0G 21% /
tmpfs tmpfs 475M 0 475M 0% /dev/shm
tmpfs tmpfs 190M 864K 190M 1% /run
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/xvda15 vfat 105M 6.1M 99M 6% /boot/efi
tmpfs tmpfs 95M 4.0K 95M 1% /run/user/1000
/dev/xvdg1 xfs 20G 18G 2.4G 89% /mnt/new
/dev/xvdf1 xfs 100G 18G 83G 18% /mnt/old
$ mount -t proc /proc /mnt/new/proc
$ mount -t sysfs /sys /mnt/new/sys
$ mount --bind /dev /mnt/new/dev
$ mount --bind /run /mnt/new/run
$ sudo chroot /mnt/new
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1160.66.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.66.1.el7.x86_64.img
/usr/sbin/grub2-probe: error: unknown filesystem.
Found linux image: /boot/vmlinuz-3.10.0-327.13.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.13.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-327.4.5.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.4.5.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-123.6.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.6.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-5ab5df625df740d28a100a002e3b431a
Found initrd image: /boot/initramfs-0-rescue-5ab5df625df740d28a100a002e3b431a.img
done
# grub2-install /dev/xvdg
Installing for i386-pc platform.
grub2-install: error: unknown filesystem.
となりました。
最初AmazonLinuxで実行してこのエラーとなり、新たに別途ubuntuでインスタンスを作り同じことを試みましたが結果は同じでした。(元のボリュームはcentOSのインスタンスにアタッチされていたものです。)
その他情報
$$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0 0 100% /snap/amazon-ssm-agent/7628
loop1 0 100% /snap/core18/2812
loop2 0 100% /snap/core20/2015
loop3 0 100% /snap/lxd/24322
loop4 0 100% /snap/snapd/20290
xvda
├─xvda1 ext4 1.0 cloudimg-rootfs 9e71e708-e903-4c26-8506-d85b84605ba0 6G 21% /
├─xvda14
└─xvda15 vfat FAT32 UEFI A62D-E731 98.3M 6% /boot/efi
xvdf
└─xvdf1 xfs / 432413b0-cc2e-4584-bf9f-babcc2caf9cd 82.9G 17% /mnt/old
xvdg
└─xvdg1 xfs / 17d021af-a367-4b4d-927a-a7bbfe2b3935 2.4G 88% /mnt/new
次の情報を発見しました!
https://unix.stackexchange.com/questions/175728/what-file-system-should-a-grub-2-boot-partition-use
「However, a big problem is that GRUB in fact is not able to recognize just about any filesystem. GRUB last stable release (2.0.2beta) is from 2 years ago, and this is the version that most distributions ship. So, while XFS, for example, was supported back in the time of the release, this filesystem has evolved* in the meantime but GRUB did not follow with a new release. Meaning that GRUB cannot boot from a boot partition that is XFS formatted. The same goes for BTRFS afaik.
GRUB patches for the mentioned changes or new file systems sometimes do exist but it usually means that you would have to compile GRUB entirely yourself if your distribution offers a build package. In case of Arch Linux I had to build Grub-Git from Arch user repositories for XFS boot to work.」
xfsだとダメと書いてある??
となると、そもそもこの方法ではダメなのでしょうか?
なにぶん初心者なので、足りない(or 余計な)情報などもあると思います。
解決のために必要な情報がありましたら、何を出せばよいかご教授いただけると助かります。
よろしくお願いいたします。