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