文件系统以只读方式安装,因此我启动到恢复模式来运行fsck
,并收到以下消息:
mountall: /lib/i386-linux-gnu/libc.so.6: version 'GLIBC_2.17' not found (required by /lib/i386-linux-gnu/libudev.so.1)
...所以我在想,它无法完全下载软件包。好吧,我会更新 dpkg...除非网络未启用。
...因此我启用网络并收到一条消息:
failed to open lockfile...
当然,因为它是一个只读文件系统。
我该如何摆脱这个困境呢?
如果重要的话,这是在 ESXi 实例上。
答案1
我假设你没有备份。首先进行备份。使用克隆兹拉并树立形象。如果你试图修复事物,你可能会造成更大的损害。
继续操作之前请确保有足够的磁盘空间
现在要修复您的安装,您有几个选择:
- 启动 Ubuntu Live CD 并 chroot 到安装的根文件夹,然后安装正确的 glibc dpkg
- 在当前版本上升级安装 Ubuntu。
或者您可以创建一个新的虚拟机。安装 Ubuntu,然后从旧虚拟机迁移应用程序和配置。使用实时 CD 访问损坏的虚拟机。记录所有内容并配置备份。
答案2
感谢@bain,我通过下载 Live CD iso 并将其安装到我的 VM 中,以“试用”模式启动我的机器,然后执行以下操作,走上了正确的轨道:
- 首先,我打开一个终端窗口
ctrl-alt-t
- 使用以下方式将我的登录名更改为超级用户
sudo su -
- 使用以下方式安装 LVM 管理工具
apt-get install lvm2
- 使用 启动逻辑卷管理器
vgchange -a y dev
。这创建了两个对我的 LVM 卷的引用/dev/mapper
,名称分别为dev-root
和dev-swap_1
。显然我对 更感兴趣/dev/mapper/dev-root
。 - 我跑了
fsck /dev/mapper/dev-root
,然后拿回了一个干净的 FS(?我没想到这一点) - 我创建了一个挂载点
mkdir /sda5
(这可能比必要的更令人困惑,但我知道我想要的数据在sda5
) - 我安装了 FS
mount /dev/mapper/dev-root /sda5
- 然后我就可以遍历我的 FS 并获取我想要的东西。
- 然后我将其吹掉并重建。