我正在尝试更新用于重新管理 20.04 的 Ubuntu 18.04 安装映像的进程,但在提取 initrd 存档时遇到问题。使用的命令是cpio -id --no-absolute-filenames
. 当我使用相同的命令从 20.04 映像中提取 initrd 映像时,它会提取kernel/x86/microcode/AuthenticAMD.bin
并停止。
检查 initrd 文件内容,我可以看到“TRAILER”部分,显示该文件中有多个存档。正如有关 cpio 档案的其他线程中所建议的,我尝试按如下方式提取复合档案:cat initrd | while cpio -id --no-absolute-filenames; do :; done
。在这种情况下,第一个条目会提取,但它有一堆“0 块”并且不会提取其他任何内容。
有谁知道这个档案是如何创建的或如何提取它?
我已经使用 Ubuntu Desktop 一段时间了,但是今天由于某种原因我无法启动它。这是我所看到的。
这是我已经尝试过的:
这是我从 USB 启动后所做的事情:
我选择了第一个选项。打开终端-->sudo fdisk -l
这给了我实际的设备名称 -->/dev/sda1
然后我执行 -->sudo fsck /dev/sda1
正如这里提到的 -目标文件系统没有请求 /sbin/init
这是输出:
$ sudo fsck /dev/sda1
fsck from util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
/dev/sda1: clean, 682451/29483008 files, 26039796/117925888 blocks
Run Code Online (Sandbox Code Playgroud)
尝试重新启动并从 HDD 启动,但同样的问题
sudo fsck -f /dev/sda1
这就是输出的样子 - https://pastebin.com/Yi4PqRU4
还尝试了选项 4 check disk defects
。结果是No defects found
帮助?
我试图提取casper/initrd
Ubuntu 18.10的 initrd并得到了一个意想不到的结果。我没有看到根文件系统和文件,而只是一个名为kernel
.
首先我想知道我是应该解压 initrd 还是直接解压存档,所以我发出了这个命令:
$ file initrd
initrd: ASCII cpio archive (SVR4 with no CRC)
Run Code Online (Sandbox Code Playgroud)
根据输出,它应该是一个 cpio 存档,我用来cpio
解压存档。
$ cpio -id < initrd
56 blocks
$ ls
initrd kernel
Run Code Online (Sandbox Code Playgroud)
如果我去看看目录kernel
,我得到了
kernel/
??? x86
??? microcode
??? AuthenticAMD.bin
2 directories, 1 file
Run Code Online (Sandbox Code Playgroud)
应该有文件和文件夹,如init
、etc
、usr
等。例如:
bin conf cryptroot etc init lib lib64 run sbin scripts usr var
Run Code Online (Sandbox Code Playgroud) 升级到 20.04 后,我的加密磁盘在启动时没有被解密。我没有被要求输入任何密码,所以它显然找不到任何分区并引导到 initrd 提示符。
可能是什么原因:/cryptroot/crypttab
在 initrd 映像中是完全空的。
我可以手动打开 luks 并 chroot 进入系统。这是我/etc/crypttab
在真正根目录中的内容:
nvme0n1p3_crypt UUID=<some uuid> none luks
(UUID 都是正确的,无处不在)
当我运行时update-initramfs -c -k all
,输出是:
cryptsetup: WARNING: target 'nvme0n1p3_crypt' not found in /etc/crypttab
这有点奇怪,因为它正是该文件中唯一单个条目的目标名称。它也被列为/dev/mapper
链接../dm-0
,似乎也是正确的。
我尝试将设备重命名为crypt
仅使用,dmsetup rename ...
但这当然没有帮助。
我认为这是我问题的根本原因。
以下是 的内容/boot
:
drwxr-xr-x 5 root root 3072 Apr 18 09:10 .
drwxr-xr-x 26 root root 4096 Mar 22 15:43 ..
-rw-r--r-- 1 root root 217495 Jan 17 05:59 config-4.15.0-76-generic
-rw-r--r-- 1 root root 217457 Feb 28 02:45 config-4.15.0-91-generic
drwxr-xr-x 3 root root 4096 Dec 31 1969 efi
drwxr-xr-x 5 root root 1024 Mar 22 15:50 grub
-rw-r--r-- 1 root root 60196828 Apr 18 09:05 initrd.img-4.15.0-76-generic
-rw-r--r-- 1 root root 60206115 Apr 18 09:05 initrd.img-4.15.0-91-generic
drwx------ 2 root root …
Run Code Online (Sandbox Code Playgroud) initrd ×5
boot ×2
18.10 ×1
20.04 ×1
apt ×1
boot-repair ×1
cryptroot ×1
cryptsetup ×1
disk-image ×1
dpkg ×1
init ×1
initramfs ×1
kernel ×1
luks ×1