VMware 笔记

1. VMware 笔记

1.1. VMware Fusion 与 VMware WorkStation 的区别

VMware Fusion 是 VMware 在 MacOS 上的虚拟机, 而 VMware WorkStation 是 VMware 在 Windows 和 Linux 上的虚拟机。

VMware Fusion 对个人免费, 有单独的密钥。VMware WorkStation 没有免费一说, 但是可以在网上找到可用的密钥。

1.2. VMware Fusion 支持的 Linux 版本

有些 Linux 发行版兼容性存在很大问题, 需要进行魔改, 这里列出兼容的版本:

Can I run Linux virtual machines on my M1/M2 Mac?

Popular arm64 Linux versions that have been reported as successfully installed include:

  • Fedora
  • CentOS Stream 9
  • Red Hat Enterprise Linux/Oracle Linux/Rocky Linux 9
  • OpenSUSE Tumbleweed
  • OpenSUSE Leap
  • Kali Linux
  • Ubuntu
  • Debian

参考自 Running Fusion on an Intel Mac and upgrading to an M1/M2 Mac? Read this first.

为什么不支持?

CentOS 7 or 8 will not boot on the Tech Preview because their kernels are built with a 64KB page size that Apple Silicon hardware does not support. RHEL 7 and 8 suffer from the same issue. 

RHEL 9 changed the page size on ARM architectures to 4KB. CentOS 9 Stream made the same change. They both will boot ( well they did before the recent round of kernel releases that cause pretty much all Linux distros to not boot on the TP - that’s another story altogether)

- Paul (Technogeezer)
Editor of the Unofficial Fusion Companion Guides

参考自 Unable to install CentOS 7 on VMWare fusion for Macbook M1

1.2.1. 魔改: arm64(aarch64) 安装 centos 7.5.1804 (不推荐, 直接使用 CentOS 9 不香么)

转载自: arm64(aarch64)安装centos 7.5.1804

  • 总体说明

Arm64 的 centos 版本自 7.5.1804 以后不再和 7.4、7.3、7.2 等之前的一样直接提供一个 rootfs.tar.xz 的压缩包, 全部变成了 ISO 的安装文件, 因此需要 EFI 来引导安装, 如果 Aarch64 的 cpu 用的是 uboot 就只有干瞪眼了, 笔者花了一翻功夫, 终于找到如何从 ISO 中提取出 centos 7.5.1804 文件系统的方法, 方便使用 uboot 的用户可以使用 centos7.5.1804。

  • 提取 centos rootfs

下载 centos7.51804 的安装包 CentOS-7-aarch64-Everything-1804.iso 或 CentOS-7-aarch64-Minimal-1804.iso 均可, 网址: http://mirror.centos.org/altarch/7.5.1804/isos/aarch64/, 两者下一个即可, 建议下载 CentOS-7-aarch64-Minimal-1804.iso, 体积更小下载更方便。

mount CentOS-7-aarch64-Minimal-1804.iso 或 CentOS-7-aarch64-Everything-1804.iso 后提取镜像内部文件: LiveOS/squashfs.img, 此文件实际上即是 centos 的 rootfs 文件, 但是不能直接使用。继续将 squashfs.img mount 起来, 然后进入 mount 的路径继续 mount 文件 LiveOS/rootfs.img, 然后即可看到 centos 的整个内部文件系统了, 如下图:

如果仅复制这些文件到根系统, 通过 uboot 加载启动, 你会发现系统根本无法启动, 这是因为此 rootfs 默认启动方式为 anaconda 启动, uboot 引导进入 anaconda 模式后会直接卡死。复制目录下的所有文件到根系统目录, 删除

/etc/systemd/system/default.target

建立软连接

ln -s /usr/lib/systemd/system/multi-user.target etc/systemd/system/default.target

引导系统启动后进入 multi-user 模式。此时即可进入到 centos 系统, 用户 root, 密码无, 此时 centos 为纯净系统, 除了基本命令外不带其他任何第三方命令, 包括 passwd、sudo、openssh、telnet、net-tools 等等均没有, 且 yum 命令报错找不到 import yummain 模块, 无法使用。

复制 CentOS-7-aarch64-Minimal-1804.iso 或 CentOS-7-aarch64-Everything-1804.iso 中, Packages 目录与 yum 相关的四个 rmp 包

yum-3.4.3-158.el7.centos.noarch.rpm、

yum-metadata-parser-1.1.4-10.el7.aarch64.rpm、

yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm

centos-release-7-5.1804.el7.centos.a.aarch64.rpm

然后启动进入 centos 后执行:

rpm2cpio yum-3.4.3-158.el7.centos.noarch.rpm|cpio -idumv

rpm2cpio yum-metadata-parser-1.1.4-10.el7.aarch64.rpm|cpio -idumv

rpm2cpio yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm|cpio -idumv

rpm2cpio centos-release-7-5.1804.el7.centos.a.aarch64.rpm|cpio -idumv

修改文件 /etc/yum.repos.d/CentOS-Base.repo 中所有 $releasever7

(可在 vim 中输入: %s/$releaseve/7/g 来全局替换)

然后 yum -help, yum 命令已经可以使用, 通过 ip addr 配置 ip 后, 即可用 yum 安装基本的命令和一些第三方常用库如: passwd、sudo、openssh、telnet、net-tools 等。

如果 yum 需要使用代理修改: /etc/yum.conf 文件, 最末尾添加:

proxy=http://linux:linux@192.168.100.80:808/

其中 linux 为代理的用户名和密码, 808 为代理的端口, 192.168.100.80 为代理网址, 代理只能使用 http

PS: 好些人留言说做出来的系统用不了, 实际上按我的步骤操作最后是肯定能跑起来的, 下面我提供一个自己做好的系统, 由于写文章的时候 centos 还是 7.5, 现在都已经升级为 7.6 了, 我就直接提供打包好的 7.6 了(系统账号: root 密码: admin)

注意: 这样使用的 aarch64 centos 系统 yum 安装社区的命令等等均没有什么问题, 唯一需要清除一点, 因为内核用的是自己的, 而不是官方的, 所以如果安装的第三方命令需要内核支持的话需要自己打开相关选项重新编译自己的内核。

百度网盘:

链接: https://pan.baidu.com/s/1a-lQcLt_Bim8kSm4ZCO8mw 提取码: 86te

最后上个 arm64 单板启动后的截图:

1.3. vmtool 挂载

在点击挂载的时候, 实际上 vmtools 的 ISO 是挂载到 /dev/cdrom 下边, 所以挂载后先查看文件是否存在:

ls /dev/cdrom

如果存在创建一个临时文件夹, 挂载到 /dev/cdrom:

# 创建临时文件
mkdir /mnt/cdrom

# 挂载到临时文件
mount -t auto /dev/cdrom /mnt/cdrom

然后把 ISO 中的 vmtools 的安装包拷贝出来:

cd /mnt/cdrom
# 把对用的安装包拷贝到根目录 (gz,  rpm)
cp  vmtools-*  /root

然后退出 /mnt/cdrom 文件, 再 umount:

umount  /mnt/cdrom 

1.4. VMware Tools 共享目录

注意: 不要使用 VMware 共享 mysql docker 的数据目录, 权限不够。试了下面的权限设置方法, 没用, 不折腾了。

# 查看共享文件夹
vmware-hgfsclient

# 创建挂载文件夹
mkdir /mnt/hgfs

# 挂载
vmhgfs-fuse /mnt/hgfs

1.5. VMware 共享目录权限问题

默认情况下, 是不允许 guest 机修改宿主机目录权限的, guest 机的 root 用户也不行。

Permission denied

这在某些情况下会成为一个问题, 所以需要设置允许 guest 机修改。

解决方法是:

  1. 修改 /etc/fuse.conf
vi /etc/fuse.conf

user_allow_other 取消注释 (删除最前面的 #)

# mount_max = 1000
user_allow_other
  1. 执行命令

执行下列命令挂载, 即可实现所有的用户都可以访问 /mnt/hgfs

vmhgfs-fuse -o allow_other .host:/ /mnt/hgfs

# 或者
vmhgfs-fuse -o nonempty -o allow_other /mnt

如果已经挂载, 通过下列命令进行卸载后, 再进行挂载

umount /mnt/hgfs

1.5.1. 设置用户归属

vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=0 -o gid=0 -o umask=022

注意: 上面命令中的 uid 和 gid 需要根据 Linux 用户 uid 来决定, 在 home 目录输入 id 命令即可查询:

[root@localhost mysql8]# id
uid=0(root) gid=0(root) groups=0(root)
[root@localhost mysql8]# umask
0022

1.6. vmware 完全使用内存不使用硬盘

查了很多资料, 发现下面这个可用, 来自 官方

在 vmware 的配置文件 C:\ProgramData\VMware\VMware Workstation\settings.ini(Win7) 或者 C:\Documents and Settings\All Users\Application Data\VMware\VMware Workstation\settings.ini(WinXP) 或者单个虚拟机的 .vmx
文件最下面增加如下:

sched.swap.vmxSwapEnabled = "FALSE"

注意事项:

  1. 在启动的时候务必保证内存够用, 否则会报 “内部错误” 的错误;
  2. 不能重复, 否则会报无效的虚拟机文件。

一般情况下加入以下进行最大优化:

sched.swap.vmxSwapEnabled = "FALSE"
mainMem.backing = "swap"
sched.mem.pshare.enable = "FALSE"
mainMem.useNamedFile = "FALSE"
prefvmx.minVmMemPct = "100"
prefvmx.useRecommendedLockedMemSize = "TRUE"
mainMem.partialLazySave = "FALSE"
mainMem.partialLazyRestore = "FALSE"
priority.grabbed = "high"
priority.ungrabbed = "normal"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云满笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值