web-dev-qa-db-ja.com

debianを起動できず、efibootmgrで何も変更できません

カーネルの更新(Debian Stable/Jessie)の後、私のシステムは起動しませんでした。私はubuntuをインストールすることでそれに戻りました、そしてubuntuローダーは私にdebianを起動させます。

だから今私はdebianにブートプロセスを修復させようとしていますが、efibootmgrは無力のようです:

現在のステータスは次のとおりです。

# efibootmgr -v

BootCurrent: 0000
No BootOrder is set; firmware will attempt recovery
Boot0000* Ubuntu    HD(1,800,fa000,c865d688-f250-471e-9d54-bad998d64e31)File(\EFI\ubuntu\grubx64.efi)RC
Boot0001* UEFI Onboard LAN IPv6 ACPI(a0341d0,0)PCI(1c,0)PCI(0,0)MAC(MAC(74867a15fbd5,0)030d3c000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000RC
Boot0002* UEFI Onboard LAN IPv4 ACPI(a0341d0,0)PCI(1c,0)PCI(0,0)MAC(MAC(74867a15fbd5,0)RC
Boot0004* Windows Boot Manager  HD(1,800,fa000,c865d688-f250-471e-9d54-bad998d64e31)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...d...............
Boot2001* EFI USB Device    RC

そして私はこれがそれを修正すると思いました:

# grub-install /dev/sda

Installing for x86_64-efi platform.
efibootmgr: Could not set variable Boot0003: No such file or directory
efibootmgr: Could not prepare boot variable: No such file or directory
Installation finished. No error reported.

しかし実際には、efibootmgrは何も変更できないようです

# efibootmgr -t 10
efibootmgr: Could not set Timeout: No such file or directory

何かがおかしくなり、そもそもこれが問題だったようですが、誰かが何か考えを持っていますか?

私が言っているように、ubuntuは同じシステムにうまくインストールできたので、壊れているのはDebianではなくコンピューターだとは信じたくありません。


失敗したtimeoutコマンドのstraceは次のとおりです。

終わりに向かっていくつかのエラーがあります(デバイスにスペースが残っていませんか??)

root@Dell-3521:/home/john# strace efibootmgr -t 10
execve("/bin/efibootmgr", ["efibootmgr", "-t", "10"], [/* 47 vars */]) = 0
brk(0)                                  = 0xcff000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc3cfd1c000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=126215, ...}) = 0
mmap(NULL, 126215, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fc3cfcfd000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpci.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0%\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=52448, ...}) = 0
mmap(NULL, 2147632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc3cf8f1000
mprotect(0x7fc3cf8fc000, 2097152, PROT_NONE) = 0
mmap(0x7fc3cfafc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb000) = 0x7fc3cfafc000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=109144, ...}) = 0
mmap(NULL, 2204200, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc3cf6d6000
mprotect(0x7fc3cf6f0000, 2093056, PROT_NONE) = 0
mmap(0x7fc3cf8ef000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19000) = 0x7fc3cf8ef000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/x86_64-linux-gnu/libefivar.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000!\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=63520, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc3cfcfc000
mmap(NULL, 2159576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc3cf4c6000
mprotect(0x7fc3cf4cd000, 2093056, PROT_NONE) = 0
mmap(0x7fc3cf6cc000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7fc3cf6cc000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\34\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1738176, ...}) = 0
mmap(NULL, 3844640, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc3cf11b000
mprotect(0x7fc3cf2bd000, 2093056, PROT_NONE) = 0
mmap(0x7fc3cf4bc000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a1000) = 0x7fc3cf4bc000
mmap(0x7fc3cf4c2000, 14880, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc3cf4c2000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220:\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=84856, ...}) = 0
mmap(NULL, 2189928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc3cef04000
mprotect(0x7fc3cef18000, 2093056, PROT_NONE) = 0
mmap(0x7fc3cf117000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13000) = 0x7fc3cf117000
mmap(0x7fc3cf119000, 6760, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fc3cf119000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14664, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc3cfcfb000
mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fc3ced00000
mprotect(0x7fc3ced03000, 2093056, PROT_NONE) = 0
mmap(0x7fc3cef02000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7fc3cef02000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc3cfcfa000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc3cfcf9000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc3cfcf8000
Arch_prctl(Arch_SET_FS, 0x7fc3cfcf9700) = 0
mprotect(0x7fc3cf4bc000, 16384, PROT_READ) = 0
mprotect(0x7fc3cef02000, 4096, PROT_READ) = 0
mprotect(0x7fc3cf117000, 4096, PROT_READ) = 0
mprotect(0x7fc3cf6cc000, 4096, PROT_READ) = 0
mprotect(0x7fc3cf8ef000, 4096, PROT_READ) = 0
mprotect(0x7fc3cfafc000, 4096, PROT_READ) = 0
mprotect(0x60e000, 4096, PROT_READ)     = 0
mprotect(0x7fc3cfd1e000, 4096, PROT_READ) = 0
munmap(0x7fc3cfcfd000, 126215)          = 0
access("/sys/firmware/efi/efivars/", F_OK) = 0
statfs("/sys/firmware/efi/efivars/", {f_type="SYSFS_MAGIC", f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
uname({sys="Linux", node="Dell-3521", ...}) = 0
access("/sys/firmware/efi/vars/new_var", F_OK) = 0
openat(AT_FDCWD, "/sys/firmware/efi/vars/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
brk(0)                                  = 0xcff000
brk(0xd28000)                           = 0xd28000
fcntl(3, F_GETFD)                       = 0x1 (flags FD_CLOEXEC)
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents(3, /* 159 entries */, 32768)   = 12872
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
open("/sys/firmware/efi/vars/Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0000\0000\0000\0000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 2084
read(3, "", 2012)                       = 0
close(3)                                = 0
open("/sys/firmware/efi/vars/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0000\0000\0000\0001\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 2084
read(3, "", 2012)                       = 0
close(3)                                = 0
open("/sys/firmware/efi/vars/Boot0002-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0000\0000\0000\0002\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 2084
read(3, "", 2012)                       = 0
close(3)                                = 0
open("/sys/firmware/efi/vars/Boot0004-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0000\0000\0000\0004\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 2084
read(3, "", 2012)                       = 0
close(3)                                = 0
open("/sys/firmware/efi/vars/Boot2001-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0002\0000\0000\0001\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 2084
read(3, "", 2012)                       = 0
close(3)                                = 0
access("/sys/firmware/efi/vars/Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c/data", F_OK) = -1 ENOENT (No such file or directory)
open("/sys/firmware/efi/vars/new_var", O_WRONLY) = 3
write(3, "T\0i\0m\0e\0o\0u\0t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2084) = -1 ENOSPC (No space left on device)
umask(0)                                = 022
umask(022)                              = 0
chmod("/sys/firmware/efi/vars/Timeout-8be4df61-93ca-11d2-aa0d-00e0980/", 021371157541) = -1 ENOENT (No such file or directory)
chmod("/sys/firmware/efi/vars/Timeout-8be4df61-93ca-11d2-aa0d-00e0980/attributes", 021371157541) = -1 ENOENT (No such file or directory)
chmod("/sys/firmware/efi/vars/Timeout-8be4df61-93ca-11d2-aa0d-00e0980/data", 021371157541) = -1 ENOENT (No such file or directory)
chmod("/sys/firmware/efi/vars/Timeout-8be4df61-93ca-11d2-aa0d-00e0980/guid", 021371157541) = -1 ENOENT (No such file or directory)
chmod("/sys/firmware/efi/vars/Timeout-8be4df61-93ca-11d2-aa0d-00e0980/raw_var", 021371157541) = -1 ENOENT (No such file or directory)
chmod("/sys/firmware/efi/vars/Timeout-8be4df61-93ca-11d2-aa0d-00e0980/size", 021371157541) = -1 ENOENT (No such file or directory)
close(3)                                = 0
write(2, "efibootmgr: ", 12efibootmgr: )            = 12
write(2, "Could not set Timeout", 21Could not set Timeout)   = 21
write(2, ": ", 2: )                       = 2
write(2, "No such file or directory\n", 26No such file or directory
) = 26
exit_group(14)                          = ?
+++ exited with 14 +++

これは、Windowsがシステムを台無しにし、Dellのハードウェアがごみであるという組み合わせのようです。

http://www.c0le.org/2014/12/dual-booting-debian-jessie-and-windows.html

Windowsを起動するたびに(私は決してしません!偶然に起こりました!)、それはそれ自身のブートローダーを追加しようとします、そしてそれはすべてを盗聴します。

それを修正するように見えるのは、Windowsコマンドプロンプトでこれを行うことです!:

((WinX 次にコマンドプロンプト(管理者))

bcdedit /set {bootmgr} path \EFI\debian\grubx64.efi

どうやらこれはWindowsにdebianのgrubブートローダーを使わせます。

次に、Windowsが物事を台無しにしようとすると、動作するように台無しになります。

血まみれの山。

NVRAMの内容(efibootmgrの起動順序と起動エントリが保存されている)が破損し、それ以上の変更が困難または不可能になるという報告と事例の両方を聞いたことがあります。私が知っている唯一の修正は、ファームウェアのオプションを使用してすべての設定をデフォルトにリセットすることです。これにより、NVRAMからのエントリがクリアされますallフォールバックファイル名の位置に何かがない限り、コンピュータが起動できなくなります(EFI/BOOT/bootx64.efi)またはリムーバブルメディア(Ubuntuインストールディスクなど)を使用します。緊急ディスクまたはフォールバックブートローダーを使用してOSを起動し、必要なエントリを追加し直すことができます。

とはいえ、あなたがこの問題を経験していることを100%肯定することはできません。症状は一致しますが、別の問題が発生している可能性があります。その場合、先ほど提案した回復を試みることは時間の無駄であり、実際に問題を悪化させる可能性があります。リスクに見合う価値があるかどうかは、自分で判断する必要があります。

3
Rod Smith