卡在 initramfs,需要恢复数据

卡在 initramfs,需要恢复数据

我在 Virtualbox 上运行 Ubuntu LTS 10.4。突然间,我无法启动虚拟机,并且卡在了 initramfs 中。

我有另一台 Ubuntu VM,可以安装虚拟硬盘。我只想复制我的文件,这样就不会丢失它们。

我将虚拟硬盘连接到 /dev/sdb1 并执行以下操作:

sudo 挂载 /dev/sdb1 /mnt

但是当我 ls /mnt 时,找不到我的主目录。我该如何访问原始文件系统?

答案1

您的主目录可能位于磁盘的另一个分区(甚至在另一个磁盘上)。请先尝试使用fdisk -l。它应该返回类似以下内容的内容:

Disk /dev/sdb: 145.9 GB, 145999527936
bytes 255 heads, 63 sectors/track,
17750 cylinders Units = cylinders of
16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1           7       56196   83  Linux
/dev/sdb3             263         517     2048287+  83  Linux
/dev/sdb4             518       17750   138424072+   f  W95 Ext'd (LBA)
/dev/sdb5             518         900     3076416   83  Linux
/dev/sdb6             901        1283     3076416   83  Linux

然后尝试逐个挂载列表中的每个设备并检查该文件系统上的文件,直到找到主分区:

sudo mount /dev/sdb1 /mnt
ls -la /mnt

这些文件是否来自您的主目录?如果不是,请继续:

sudo umount /mnt
sudo mount /dev/sdb3 /mnt
ls -la /mnt

重复,直到宾果。


对于 LVM 来说,方法有所不同。

  1. 将您的 / 分区(之前标识为 / 分区的分区)挂载到 /mnt 上。
  2. 确定哪个设备对应于哪个挂载点(即 sdb3 -> /var、sdb4 -> /usr 等等)。
  3. 将它们挂载到您在上一步挂载的 / 的相应目录上。(例如,如果您的 var 文件系统是 sdb3 sudo mount /dev/sdb3 /mnt/var,则执行...)。
  4. 最后将您想要复制主文件的设备挂载到 /mnt/mnt
  5. 然后,您可以执行sudo chroot /mnt; mount /proc;mount /sys并开始使用已安装的映像。(像往常一样使用 lvm)。安装您的主文件系统(它应该可见为 lvm 卷),并将有用的数据复制到 /mnt 目录。
  6. 一旦完成exit后您将返回到您的服务器。

相关内容