情况

情况

情况

我使用的是 2.0 RC2 isohttp://www.zeroshell.org在 VMware ESXi 5.1 虚拟机中,我尝试调整操作方法:ZeroShell 中的 vmware-tools对于 v2.0,文件布局略有不同。

最初偏离指令

直到取消链接 /cdrom/modules 并重新链接到 /Database/rootfs/modules 为止,这些指令都成功运行。如果您尝试通过对整个 /lib 文件夹执行相同操作来解决此问题,它将无法再运行任何程序。

除此之外,我认为 vmtools 需要修改 /lib/modules 目录的内容,但在 zeroshell 中,默认情况下,该目录存储并从 CD 运行。我暂时无法更改 /lib/modules 的链接,因为整个 /lib 是指向 /cdrom/lib 的符号链接,并且是只读的。因此,我尝试通过运行以下命令将 /lib 移动到硬盘,但在取消链接 /lib 后运行 ln 命令时出现错误。这会破坏一切,我从快照中恢复以重试。

mkdir /Database/rootfs/lib
cp -a /lib/* /Database/rootfs/lib
unlink /lib && ln -s /Database/rootfs/lib /lib

为了让 ln 在最后一行工作,我尝试将其更改为“ln -sfn /Database/rootfs/lib /lib”

关于如何在此虚拟机中安装 vmware-tools 有什么想法吗?我尝试了从其下载页面下载 .img.gz 文件,它只有 /dev/sda1 = /boot 和 /dev/sda2 = iso9660 CD 映像,而 /dev/sda3 有配置文件存储,这导致了必须移动 /lib 的相同问题。

额外的系统信息

提取 vmtools tar.gz 文件后,在运行其余程序之前,系统如下所示

cat /etc/fstab
tmpfs      /            tmpfs      defaults        1     1
/dev/cdrom              /cdrom              iso9660 ro,remount 0 0
proc          /proc        proc     defaults        0     0
none          /sys         sysfs     remount        0     0
devpts        /dev/pts     devpts   gid=4,mode=620  0     0
shm           /dev/shm     tmpfs    defaults        0     0
usbfs       /proc/bus/usb  usbfs    defaults    0     0

cat /etc/mtab
tmpfs / tmpfs rw 0 0
proc /proc proc rw 0 0
/dev/sr0 /cdrom iso9660 ro 0 0
none /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=4,mode=620 0 0
shm /dev/shm tmpfs rw 0 0
usbfs /proc/bus/usb usbfs rw 0 0
/dev/sda1 /DB ext4 rw,noatime 0 0
/DB/_DB.001 /Database none rw,bind,noatime 0 0

ls -al / | grep ">"
lrwxrwxrwx    1 root     root           10 Nov 21  2012 bin -> /cdrom/bin
lrwxrwxrwx    1 root     root           10 Nov 21  2012 lib -> /cdrom/lib
lrwxrwxrwx    1 root     root           21 Jul  4 02:57 sbin -> /cdrom/sbin
lrwxrwxrwx    1 root     root           20 Jul  4 02:57 usr -> /cdrom/usr

ls -l /lib/modules
lr-xr-xr-x    1 root     root           14 Nov 21  2012 /lib/modules -> /cdrom/modules

当前的问题

运行“./vmware-install.pl”时,它会抱怨找不到 gcc 或内核头文件,因此无法编译模块。我特别想要 VMCI 模块,内存模块也很方便。该发行版已经附带 vmxnet3 驱动程序和半虚拟磁盘控制器驱动程序,因此我不需要编译它们。

按照下面的说明,它似乎运行良好,但如果我尝试使用 viClient 关闭或重新启动虚拟机,它会给出错误:“重置此虚拟机的请求失败,因为相应的 VMware Tools 脚本未成功运行。如果您已在此虚拟机中配置了自定义重置脚本,请确保其中不包含任何错误。”

当我进入 shell 并尝试运行我认为是关机的命令时,它说

/etc/vmware-tools/poweroff-vm-default poweroff-vm /etc/vmware-tools
Thu Jul 4 09:29:44 CEST 2013 : Executing '/etc/vmware-tools/poweroff-vm-default'
Thu Jul 4 09:29:44 CEST 2013 : Executing '/etc/vmware-tools/scripts/vmware/network'

Jul 04 09:29:44 network: ifup not in search path.

当前安装 VMtools 的方法

确保 linux.iso 文件已连接到 cd2,然后将以下代码粘贴到控制台中

mkdir /mnt/cd2
chmod 555 /mnt/cd2
安装-t 自动/dev/sr1 /mnt/cd2
cp /mnt/cd2/VMwareTools*.tar.gz /数据库
cd /数据库
tar -xvzf VMwareTools*.tar.gz
rm -f VMwareTools*.tar.gz
卸载/dev/sr1


cd /数据库
创建根目录
cd 根文件系统
创建目录 sbin
mkdir usr
cp -a /sbin/* /数据库/rootfs/sbin
cp -a /usr/* /数据库/rootfs/usr

安装-o重新安装,rw /
取消链接 /sbin && ln -s /数据库/rootfs/sbin /sbin
取消链接 /usr && /cdrom/usr/bin/ln -s /Database/rootfs/usr /usr


mkdir /数据库/rootfs/lib
cp -a /lib/* /数据库/rootfs/lib
rm -f /数据库/rootfs/lib/模块
cp -a /cdrom/modules /数据库/rootfs/lib/modules
cd /数据库/rootfs/lib

ln -sfn /数据库/rootfs/lib /lib

mkdir /数据库/vmware-tools
cd /数据库/vmware-tools
mkdir 等
CD 等
mkdir init.d
创建目录 rc.d
cd rc.d
创建目录 rc0.d
创建目录 rc1.d
创建目录 rc2.d
创建目录 rc3.d
创建目录 rc4.d
创建目录 rc5.d
创建目录 rc6.d

cd /数据库/vmware-tools-distrib
./vmware-install.pl

确保所有路径都以“/Database/vmware-tools/”开头,手动输入时确保路径以尾随的 / 结尾

然后您就可以配置了。对所有事情都说不,它会抱怨找不到 gcc 或内核头文件,因此无法编译模块(如 vmci 模块)以允许与主机通信以执行关机客户机等命令。 <---- 这是一个问题

cd /数据库/vmware-tools/usr/bin
./vmware-config-tools.pl

VMtools 当前正在运行,但为了确保它随机器一起启动,请粘贴以下内容

cd /Database/vmware-tools
mkdir startup 
mkdir startup/etc 
mkdir startup/etc/vmware-tools 
cp -a /etc/vmware-tools/* /Database/vmware-tools/startup/etc/vmware-tools

cat <<EOF > /Database/vmware-tools/startup/run.sh
#!/bin/bash 
mount -o remount,rw / 

unlink /usr && /cdrom/usr/bin/ln -s /Database/rootfs/usr /usr 
unlink /sbin && ln -s /Database/rootfs/sbin /sbin 
ln -sfn /Database/rootfs/lib /lib

cp -a /Database/vmware-tools/startup/etc/* /etc 

/Database/vmware-tools/etc/rc.d/vmware-tools start
EOF
chmod 766 /Database/vmware-tools/startup/run.sh

现在通过 WebLogin 进入 ZeroShell。转到“Startup/Cron”面板,选择“post boot”,启用状态,并添加以下行:“/Database/vmware-tools/startup/run.sh”

答案1

我建议尝试绑定挂载(就像/Database 已经是的那样)而不是该页面让您玩的取消链接/重新链接游戏。

尝试类似/lib/modules 的/Database/rootfs/lib/modules /lib/modules none rw,bind 0 0操作/etc/fstab

或者,我假设您在替换 /lib 符号链接时遇到的问题是,在删除 /lib 符号链接后,命令立即开始失败。这可能是因为替换不是原子的。您可能运气更好,ln -sfT /Database/rootfs/lib /lib因为替换应该更原子,即使实际上不是原子的(我暂时不知道)。

相关内容