天翼云增加子账号并给子账号设置权限

不得不说天翼云的智障帮助机器人,以送佛送一半的心态,把我带进了坑里。这里简单提一下我怎么找到给天翼云开子账号和配权限的过程。

1. 帮助中心

image-20230518午後83916689

点击右下角,问问智能客服:

image-20230518午後84027903

image-20230518午後84108792

2. 工单

image-20230518午後84309283

3. 开通子账号

image-20230518午後84409901

一直到这里都还行。

image-20230518午前94217478

image-20230518午前94247042

image-20230518午前94341253

4. 配置权限

智障的自动帮助就再也没办法帮助了。后来问了客服经理,应该在 所有服务->统一身份认证服务 里进行配置:

image-20230518午前94002616

image-20230518午前94021502

image-20230518午前94510101

image-20230518午前94611598

image-20230518午前94917287

我选择了这一项。

image-20230518午前100530121

完成。


linux 查看nginx 启动路径

查看进程的pid:

ps aux | grep nginx

查看 pid 的路径:

ls -alh /proc/[pid]/exe

2531684225579

确认 nginx 使用的配置文件:

$ /home/app/midware/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

在 M1 Mac 使用 utm 中安装 x86/arm 的 Windows

今天在我的 M1 MacBook Air 上运行了 x86 版本的 Windows 7。在这里做个简单的记录。

安装步骤

  1. 下载并安装 UTM

    首先,访问 UTM 官方网站 下载 UTM 应用。按照提示安装到你的 Mac 上。

  2. 准备好一个 Windows x86 ISO 文件

    需要注意的是,不是所有的 x86 都能在 UTM 上运行。

    我就尝试了好几个 win 10/7 的镜像,都是可以安装,但是到最后运行的时候都会报错。

    你需要在官网上确认,他们测试过必然能跑的镜像:https://mac.getutm.app/gallery/

    image-20230516午後80223847

    进入 Windows 7 的内容:

    可以找到 Requirements 部分的内容,写的非常清楚,需要的是这样的一个镜像:

    en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso

    对应的 hash 值是 36ae90defbad9d9539e649b193ae573b77a71c83.

    image-20230516午後80308966

    在很多地方都能下载到,例如 我在这里下载的:en_windows_7_ultimate_with_sp1_x64_dvd_u_677332

    更新:2024-12-31

    有一个软件:CrystalFetch,可以下载macOS适用的win10和win11,可以试试:

    image-20241231午前101412860

  3. 导入镜像

    image-20230516午後80624660

    第一个是直接使用arm芯片运行虚拟机,arm的Windows就选第一个,

    第二个是转译,x86的选择第二个“emulate”。

    image-20230516午後80647255

    一路往下操作就好:

    Screenshot 1

  4. 安装完成后就可以简单使用了:

    Screenshot 6

  5. 虽然官网上有与宿主机 Mac 共享文件夹的功能,安装这个软件即可: SPICE guest tools

    Screenshot 7

    但我始终没能成功。

    我最后的解决办法是在宿主机 Mac 上用 Python 起临时服务器解决的:

    python3 -m http.server 9000
    

    image-20230516午後81129229

    在虚拟机内访问 Mac 的 ip:9000 即可:

    Screenshot 8

    更新:2024-12-31

    我装了win11,搜索驱动的时候可以直接选择默认的软盘,就可以安装网络驱动了。

    image-20241231午前101802671

    这回已经比去年的好多了,不过比起macOS上传统的 parallels还是差了很远:

    image-20241231午前101935468

    image-20241231午前102027959

    image-20241231午前102052733

遇到的问题

  1. 安装某些软件提示 NSIS ErrorError launching installer:

    image-20230516午後81358552

    一般是下载网上的软件,保存的路径上有中文导致的。因为系统是纯英文的,对中文支持不太好。

    简单把文件挪到桌面就可以跳过这个问题了。

  2. 无法安装 chrome 和 edge。

    换过不下 10 个版本的离线版 chrome 和 edge,都提示有问题。

    这时候还是得靠 360 极速浏览器。

    但要注意的是,还是挺耗资源的。我看系统监控里的 cpu 常常 100%。

  3. 中文语言包

    除了装 win7,我还装了 xp。但是 xp 的中文支持不行。

    Screenshot 10

    我单独下了个语言包:http://download.microsoft.com/download/WindowsXPEmbedded/Update/2002/NT5XP/EN-US/LANGCHS.exe

    但是装好以后就启动不了的,也就不折腾了。所以有需要的同学注意一下。

总结

UTM 是一个基于 QEMU 的虚拟机,同时也具备模拟器的功能。虚拟化和模拟的主要区别在于它们处理硬件和软件的方式。

虚拟化是在物理硬件上创建虚拟硬件的过程,然后在这些虚拟硬件上运行操作系统和应用程序。虚拟机可以运行与宿主机不同的操作系统。例如,在一台运行 macOS 的 Mac 上,你可以使用虚拟化软件运行 Windows 或 Linux。

模拟器则是用来模拟不同的硬件平台,它可以在一种硬件架构上模拟另一种硬件架构。例如,你可以在一台 ARM 架构的 Mac(如 M1 Mac)上使用模拟器运行 x86 架构的 Windows。

因此,我们在 M1 Mac 上使用 UTM 运行 x86 的 Windows,UTM 需要通过模拟来实现这种硬件架构的转换。这个过程需要大量的计算资源,因此会感觉 Windows 比较卡,尤其是在运行 chrome 等这种占用内存很大的软件。我目前虚拟机里的 CPU常常会飙到 100%。

虚拟化和模拟都有各自的优点和缺点。虚拟化在性能上比模拟更优秀,但需要与宿主机相同的硬件架构。模拟则可以在不同的硬件架构之间进行转换,但会牺牲一些性能。

目前 UTM 也可以在 iOS 上运行。改天我再记录相关的操作。

https://docs.getutm.app/guides/windows/#downloads

https://github.com/aria2/aria2/releases/tag/release-1.36.0

参考资料


在 Mac/Win/Linux 上查询文件的 MD5 值

Windows

在 CMD 里使用原生命令 CertUtil 即可验证 md5 值:

CertUtil -hashfile 文件路径 MD5

例如:

CertUtil -hashfile C:\Users\username\Downloads\myfile.txt MD5

Mac

md5 文件路径

例如:

md5 "/Users/username/Downloads/My Folder/myfile.txt"

Linux

md5sum 目标文件

例如:

md5sum "/Users/username/Downloads/My Folder/myfile.txt"

git 回滚/撤销 操作

git 有三种回滚场景:

  • 工作区回滚(未 git add
  • 暂存区回滚(已 git addgit commit
  • 版本库回滚(已 git commit

在这里都做个记录。

1. 工作区回滚

工作区就是尚未 git add 的内容、当前可见的目录和文件。例如:

image-20230506午後05904150

回滚很简单:

git checkout -- [文件名] 			//撤销指定文件的修改

git checkout .                //撤销所有文件改动

2. 暂存区回滚

暂存区就是已经 git add进去,尚未 git commit 的内容。例如:

image-20230506午後10608132

git rm --cache [文件名] //撤销暂存区指定文件回到工作区

git reset -- [文件名]   //撤销暂存区指定文件回到工作区

git reset [HEAD]       // 撤销暂存区所有文件回到工作区,HEAD可以省略

3. 版本库回滚

版本库:就是.git中保存的版本仓库,也就是已经commit过的那些记录。

git log --pretty=oneline  // 查看最近几次commit的commit_id

可以用 git revert 或者 git reset 进行操作:

git revert HEAD           // 撤销最近的一个提交
git revert <commit_id>    // 撤销指定的版本,该操作将自动保存为一次commit

或:

git reset HEAD benchmarks.rb
git reset --soft xxx
git reset --hard xxx

两者主要区别是:

  • git revert是用一次新的commit来回滚之前的commit
  • git reset是直接删除指定的commit
  • git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容

参考资料