对于一些遗留应用程序,我决定使用 CentOS 5 的 chroot。
我确实在虚拟机上安装了 CentOS 5,然后我使用 live CD 启动虚拟机并使用 tar 将文件从虚拟磁盘“复制”到我的(Linux 笔记本电脑)HDD。
然后我尝试 chroot,但令我惊讶的是,我得到了“段错误”。
对于“主机”机器,我使用 Archlinux 64 位 4.17.13。
CentOS 5 的内核是 2.6.9
以下是一些可能有用的信息:
[nmmm@zenbook c5]$ file centos.5.fs/bin/bash # this is chroot
centos.5.fs/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.9, stripped
[nmmm@zenbook c5]$ file /bin/bash # this is my laptop
/bin/bash: ELF 64-bit LSB pie executable x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=42602c973215ba5b8ab5159c527e72f38e83ee52, stripped
在同一台笔记本电脑上,我使用 CentOS 7 chroot 没有任何问题。
我是否需要一些内核模块或者其他东西?
答案1
听起来像什么https://vargolino.com/wp/?p=145描述:较新的内核禁用 LEGACY_VSYSCALL。
尝试使用启动参数“vsyscall=emulate”启动您的 Live CD。使用 grml,这对我有用:
- 在启动屏幕上,选择“Isolinux prompt”
grml vsyscall=emulate
也可以看看https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907918