質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Gentoo Linux

Gentooは、Linuxディストリビューションの1つです。 GTK+で作られてファイルマネージャです。

Q&A

解決済

1回答

5057閲覧

grub-installコマンドエラー(Gentooインストール)

kentakozuka

総合スコア13

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Gentoo Linux

Gentooは、Linuxディストリビューションの1つです。 GTK+で作られてファイルマネージャです。

0グッド

0クリップ

投稿2017/01/14 08:55

編集2017/01/15 07:54

知恵をお貸しください。
現在ノートPCにGentoo(LUKS, LVM, UEFI, GRUB2)をインストールしており、grub-installコマンドでエラーが発生しております。

【追記】2017/01/15
Qiitaに(かなりテキトーですが)インストール手順を載せています。ご参考ください。
http://qiita.com/kentakozuka/items/e2a8943b972ab29e53c4

パーティションは以下の通りです。

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 238.5G 0 disk sda1 8:1 0 512M 0 part /boot/efi sda2 8:2 0 238G 0 part luksdisk 252:0 0 238G 0 crypt vg1-lv--swap 252:1 0 8G 0 lvm [SWAP] vg1-lv--arch--root 252:2 0 64G 0 lvm vg1-lv--gentoo--root 252:3 0 64G 0 lvm /

コマンドは以下になります。

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=gentoo_grub --recheck

以下のエラーが発生します。

Installing for x86_64-efi platform. File descriptor 3 (/dev/sda1) leaked on vgs invocation. Parent PID 890: grub-install /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. File descriptor 3 (/dev/sda1) leaked on vgs invocation. Parent PID 890: grub-install File descriptor 4 (pipe:[3053255]) leaked on vgs invocation. Parent PID 890: grub-install /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. Volume group "luksdisk" not found Cannot process volume group luksdisk File descriptor 3 (/dev/sda1) leaked on vgs invocation. Parent PID 890: grub-install /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. File descriptor 3 (/dev/sda1) leaked on vgs invocation. Parent PID 890: grub-install File descriptor 4 (pipe:[3053257]) leaked on vgs invocation. Parent PID 890: grub-install /run/lvm/lvmetad.socket: connect failed: No such file or directory WARNING: Failed to connect to lvmetad. Falling back to internal scanning. Volume group "luksdisk" not found Cannot process volume group luksdisk grub-install: error: disk `lvm/vg1-lv--gentoo--root' not found.

ESPであるsda1をlvmetadがチェック(?)していることから、/etc/lvm/lvm.confに「volume_list = { "vg1" }」を追記し、再度同様のコマンドを打ったところ、エラーメッセージが減りました。

Installing for x86_64-efi platform. File descriptor 3 (/dev/sda1) leaked on vgs invocation. Parent PID 833: grub-install Parse error at byte 41545 (line 914): expected a value Failed to load config file /etc/lvm/lvm.conf File descriptor 3 (/dev/sda1) leaked on vgs invocation. Parent PID 833: grub-install Parse error at byte 41545 (line 914): expected a value Failed to load config file /etc/lvm/lvm.conf grub-install: error: disk `lvm/vg1-lv--gentoo--root' not found.

このエラーの原因は何で、どのような解決方法がありますでしょうか。
よろしくお願いいたします。

【追記】2017/01/15
sharowさんの回答の通りやってみたところ、

(1). lvm.confに以下を追加する

devices { ... filter = [ "r|/dev/sda1|" ] ... }

エラーメッセージは変化しませんでした。

(2). grub-installコマンドに以下を追加

LVM_SUPPRESS_FD_WARNINGS=1

エラーメッセージが以下に変更されました。

Installing for x86_64-efi platform. File descriptor 3 (/dev/sda1) leaked on vgs invocation. Parent PID 28737: grub-install File descriptor 3 (/dev/sda1) leaked on vgs invocation. Parent PID 28737: grub-install File descriptor 4 (pipe:[6185643]) leaked on vgs invocation. Parent PID 28737: grub-install Volume group "luksdisk" not found Cannot process volume group luksdisk File descriptor 3 (/dev/sda1) leaked on vgs invocation. Parent PID 28737: grub-install File descriptor 3 (/dev/sda1) leaked on vgs invocation. Parent PID 28737: grub-install File descriptor 4 (pipe:[6185644]) leaked on vgs invocation. Parent PID 28737: grub-install Volume group "luksdisk" not found Cannot process volume group luksdisk grub-install: error: disk `lvm/vg1-lv--gentoo--root' not found.

このメッセージは以下のサイトを参考にして、/etc/lvm/lvm.confを編集した際にでたメッセージと同様の結果となりました。

use_lvmetad = 0

https://wiki.archlinuxjp.org/index.php/%E6%97%A2%E5%AD%98%E3%81%AE_Linux_%E3%81%8B%E3%82%89%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB#lvmetad

このエラーメッセージをみると、cryptsetupで暗号化したsda2("luksdisk")がVolume groupとして認識されているように見えますがそれが原因なのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

LVM_SUPPRESS_FD_WARNINGS=1 grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=gentoo_grub --recheck

でどうでしょう。LVM_SUPPRESS_FD_WARNINGSはlvmのmanページの頭のほうにあります。
そういう情報があるっぽい、というだけで、なんでそうなっているのかはわかりません。

lvmがgrubもopen中のsda1をopenしてしまっているからだとすると、lvm.confに以下を追加することでも解消するかもしれません。これで解消するならこっちのほうが安全かもです。

devices { ... filter = [ "r|/dev/sda1|" ] ... }

投稿2017/01/15 03:08

sharow

総合スコア1149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kentakozuka

2017/01/15 06:01

ご回答ありがとうございます。【追記】でご提示いただいた対応策について書き足しました。 ご確認いただけると幸いです。
sharow

2017/01/15 07:20

ふむむ。たしかにluksdiskを見てしまっているような気がしますね。 ところでいま気づいたのですが、grub-installのオプションは Usage: grub-install [OPTION...] [OPTION] [INSTALL_DEVICE] となっています。実行されたコマンドはデバイスを指定していないので、最後に/dev/sda などを指定するべきではないでしょうか。 LUKSを使っているのでGRUBとLVMは関係なく(暗号化されているので読めない)、カーネルパラメータにcryptdeviceと、もしかしたらlvm2のオプションを指定することになると思います。そこは既におさえているかと思いますが。
kentakozuka

2017/01/15 07:39

grub-installコマンドの最後にデバイスを指定していないのは、UEFI用の対応です(BIOSのようにブートセクタがないため、らしいです。) 参考URL:https://wiki.archlinuxjp.org/index.php/GRUB 現在、/etc/default/grubには以下のように変更を加えています。 ------------------- : GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd cryptdevice=/dev/sda2:vg1" : GRUB_ENABLE_CRYPTODISK=y ------------------- ご回答の意向に合っていますでしょうか?
sharow

2017/01/15 07:40

( filter = [ "r|/dev/sda1|" ] はハズレなので削除しておいてください )
sharow

2017/01/15 08:02

ああ! そうでした、UEFIはFAT32(/boot/..)でいいんでしたね。 ちょっと整理なのですが、この認識であっていますか? LUKSデバイス名: luksdisk LVMのvg名: vg1 上記の場合、cryptdevice=/dev/sda2:vg1 は誤りで、"cryptdevice=/dev/sda2:luksdisk" で、 続いて "dolvm root=/dev/mapper/vg1-lv--gentoo--root" がおそらく必要です。 上の話は後でよくて、要はLUKSのデバイス名とvgの名前がごっちゃになっていないでしょうか。GRUBやLVMが読み込む設定ファイルを見直してみてください。(GRUB2がカーネルパラメータまで検証しているのかはちょっとわかりませんが。)
kentakozuka

2017/01/15 08:20

おっしゃっていたとおり、勘違いしておりました。。。 /etc/default/grubを以下に変更しました。 ------------------- : GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd cryptdevice=/dev/sda2:luksdisk" : GRUB_ENABLE_CRYPTODISK=y ------------------- しかし、エラーメッセージは変わらずでてしまっております。 ちなみに以下に変更しても同様の結果でした。 ------------------- : GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd cryptdevice=/dev/sda2:luksdisk dolvm root=/dev/mapper/vg1-lv--gentoo--root" : GRUB_ENABLE_CRYPTODISK=y ------------------- または ------------------- : GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd cryptdevice=/dev/sda2:luksdisk dolvm root=/dev/vg1/lv-gentoo-root" : GRUB_ENABLE_CRYPTODISK=y -------------------
sharow

2017/01/15 08:52

またfilterですいません。 filter = [ "r|/dev/sd.*|", "a|/dev/mapper/.*|" ] か global_filter = [ "r|/dev/sd.*|", "a|/dev/mapper/.*|" ] はどうでしょう。
kentakozuka

2017/01/15 09:05

何度もありがとうございます。 ご提示いただいたものをlvm.confに記述しましたが、エラーメッセージは変化しませんでした。 試しにエラーになる文を記述すると読み込みエラーが発生しておりますので、lvm.confは確実に認識されてはいるみたいですが。。。
sharow

2017/01/15 09:38

うーん、ダメでしたか。 最後まで気になって調べていたのは、sda1は/bootではなく/boot/efiで大丈夫なのかな、と。grub-installは/boot/grubにも書き込むっぽい情報があるけど、この場合には/boot/efi/grubになるのかな、とかですね。もし/boot/grubに書き込むのなら、そのデバイスに書き込める必要があり、それはlv-gentoo-root下なのでLVMが関わってきます(だからLVMエラーになってる、という推測)。本来は今回のような構成ではGRUB(というかブートローダー)はLVMのことは考えなくていい筈なんです。 ・・のでもし GRUB_PRELOAD_MODULES=lvm を指定しているなら消してみてください。 当方はGRUB2からsystemd-bootに移行してしまったため、これ以上の助言は無理かもしれません。
TaichiYanagiya

2017/01/16 07:22

まったくの当てずっぽうですが、sda2 のパーティションタイプを 8e (LVM)ではなく、83 とかに変更するとどうなるでしょうか?
kentakozuka

2017/01/21 13:39

回答ありがとうございます。 その後、自分でも調査したところ、以下のページを参考にして解決致しました。 lvmとluksを使用するために、GRUBがdevice mapperをサポートする必要があったようです。 親切に対応していただきありがとうございました。 参考URL: http://yuex.in/post/2016/12/gentoo-install-mbp-1.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問