如何修复 LXC 容器的文件系统

如何修复 LXC 容器的文件系统

该容器不再启动,并出现以下错误消息:

# lxc-start -n deb7 -F
INIT: version 2.88 booting
Using makefile-style concurrent boot in runlevel S.
Cleaning up temporary files... /tmp.
Mount point '/proc/sysrq-trigger' does not exist. Skipping mount. ... (warning).
Mount point '/dev/console' does not exist. Skipping mount. ... (warning).
Mount point '/dev/ptmx' does not exist. Skipping mount. ... (warning).
Mount point '/dev/tty1' does not exist. Skipping mount. ... (warning).
Mount point '/dev/tty2' does not exist. Skipping mount. ... (warning).
Mount point '/dev/tty3' does not exist. Skipping mount. ... (warning).
Mount point '/dev/tty4' does not exist. Skipping mount. ... (warning).
Activating lvm and md swap...done.
Checking file systems...Segmentation fault (core dumped)
failed (code 139).
File system check failed. A log is being saved in /var/log/fsck/checkfs if that location is writable. Please repair the file system manually. ... failed!
A maintenance shell will now be started. CONTROL-D will terminate this shell and resume system boot. ... (warning).
Give root password for maintenance
(or type Control-D to continue): 
Segmentation fault (core dumped)
Attempt to start maintenance shell failed. Continuing with system boot in 5 seconds. ... failed!

配置:

lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:61:07

lxc.rootfs.path = dir:/var/lib/lxc/deb7/rootfs

# Common configuration
lxc.include = /usr/share/lxc/config/debian.common.conf

# Container specific configuration
lxc.tty.max = 4
lxc.uts.name = deb7
lxc.arch = amd64
lxc.pty.max = 1024

同一台机器上的其他容器都正常,只有这个容器无法启动。

谢谢。

答案1

我在 arch linux 主机上使用 debian wheezy 容器时遇到了完全相同的问题。此外,无法创建新的 debian wheezy 容器(其他 debian 版本可以)。从内核 4.15.2-2 切换到 4.14.18-1-lts 后,问题就消失了。

更新:打开 /etc/default/grub 并将 vsyscall=emulate 添加到 GRUB_CMDLINE_LINUX_DEFAULT 参数中,然后在 ubuntu 上执行 grub-mkconfig -o /boot/grub/grub.cfg 或 update-grub,重启,聚会。

相关内容