やっと、UUIDを使わないbootの方法が分かった。

きっかけは、仮想マシンマネージャーなどで、サブホストのクローンを使って新たにサブホストを作ったりした時に、DiskのUUIDなどがダブる事である。ホスト名やIPアドレスもダブルがこれは変更の方法があるが、UUIDを使わないでブートする方法を見つけた。
(よく/etc/default/grubで変更しgrub2-mkconfigで設定を反映するようにあるが、KVMのサブホストの場合はブートする領域の中にさらに領域を作っている関係で、サブホストの/etc/default/grub変更するためにはlosetupやkpartxを使って、どこかにマウントして、変更をするが、問題はgrub2-mkconfigでマウントしたファイルを(/etc/default/grub)を指定する方法が解らない。
UUIDでブートし変更をすれば良いが、もし失敗するとブートできなくなる
蛇足になるが、ある時親のホストがフリーズして、うっかり領域を作り直してフォーマットして(ここでUUIDが変更になる)そしてtimeshiftでリストアしてブートしたらUUIDが変更になっているので、ブートできなくなり(USBのtimeshiftを使えばよかったのだろうが?)往生した。そんな関係でやっとUUIDを使わずにブートする方法を見つけた

その方法はgrub2-editenvを使う。参考:https://qiita.com/saito_now/items/acacf3f5830fdfb90283
まずは現在の状況をチェック
# grub2-editenv list | grep kernelopts
何も表示されないので kernelopts が無い、では grub.cfg を見る
# grep kernelopts= /boot/grub2/grub.cfg
set kernelopts=”root=UUID=e809a914-84b6-4d48-94cf-6239230b9d2a ro resume=UUID=38b4c675-b822-457b-b597-8ac55f49231a rhgb quiet “
で、UUIDを指定しているので、変更をする。私は /dev/vda1がroot領域なので
# grub2-editenv – set “kernelopts=root=/dev/vda1 ro rhgb quiet”
変更できたか確認
# grub2-editenv list | grep kernelopts=
kernelopts=root=/dev/vda1 ro rhgb quiet
確かに変更になっている。参考のWEBによれば、 grub2-editenv 場合はこの変更だけで言いそうだ。
そして/etc/fstabの指定をUUIDで無く .dev/vda1 などに変更し再起動
無事起動したが、ブートディスクのUUIDは変更していないので、本当にUUIDでなく/dev/vda1でブートしたのか心配になり /etc/grub2/grub.cfg を見ると
set kernelopts=”root=UUID=e809a914-84b6-4d48-9**** 後略
となっており、このUUIDは/dev/vda1と一致した。でも結局はUUIDでブートしているんだ!!

フジマル について

1947年生れ、東京電機大学二部電気通信工学科卒、最後はスリランカ航空で営業だったのですが2018年に㈱インパック・ジャパンに再就職。趣味:登山、スキー、車いじり、コンピューター
カテゴリー: Linux運用時のメモ パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.