惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
爱范儿
爱范儿
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
B
Blog
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
U
Unit 42
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学
D
DataBreaches.Net
B
Blog RSS Feed
小众软件
小众软件
人人都是产品经理
人人都是产品经理
I
InfoQ
P
Proofpoint News Feed
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
The GitHub Blog
The GitHub Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

LanYunのBlog

优化macOS Dock栏的显示与隐藏 解决macOS全屏模式下某些情况显示原始鼠标指针的问题 Yarn从Classic迁移到Modern nginx自编译 用santa对二进制进行监控和授权 ESXI 8.0安装黑群晖DSM 7.x openwrt编译过程记录 编译monero For macOS ARM 自建busuanzi不蒜子平台统计平台 浅记博客更新日志 (机翻)Kubo配置文件 修改brew services中服务的启动参数 技术杂记📝 解决Surge模块不能同步问题 为Arch Linux配置邮件服务 自编译NutClient-ESXI,更改邮件逻辑 解决ESXI和群晖使用SSH密钥登录问题 为J4125软路由ESXI中群晖提供UPS服务 在arch linux上搭建rustdesk server 解决虚拟机扩容中GPT PMBR大小不符问题 搭建Tuic V5 优雅地为macOS提供python多版本的支持 修复root路径下文件权限问题 解决macOS 14上利用Whisky运行steam时有关问题 在macOS中用PhpStorm配置Xdebug调试 利用CloudFlare Workers快速自建一个IP获取器 如何自动续期证书? 从0开始速配VPS用于网站等 搭建一个基于ChatGPT的QQ机器人(Yunzai-Bot) For Mac 010 Editor For Mac 13.0.1 Crack 破解
ESXI下精简安装ArchLinux
LanYun · 2022-08-11 · via LanYunのBlog

前言

简单记录一下安装过程.以下内容大部分取取自于此文章,本文是对ESXI下安装虚拟机基于本人体验而定向修改了下.

以下为UEFI模式启动.取消了安全UFEI引导

更新系统时钟

1
timedatectl set-ntp true    

分区

EFI 分区 512MB

SWAP 分区 4G

根目录 分区 剩余全给 (如果需要给普通用户home的话可以再建)

首先将磁盘转换为 gpt 类型,这里假设比如你想安装的磁盘名称为 sdx。如果你使用 NVME 的固态硬盘,你看到的磁盘名称可能为 nvme0n1。

1
lsblk                       

接下来使用 cfdisk 命令对磁盘分区。进入 cfdisk 后的操作很直观,用键盘的方向键、Tab 键、回车键配合即可操作分配各个分区的大小与格式。一般建议将 EFI 分区设置为磁盘的第一个分区,据说有些主板如果不将 EFI 设置为第一个分区,可能有不兼容的问题。其中 EFI 分区选择EFI System类型,其余两个分区分别选择Linux swap, Linux filesystem类型。

1
2
cfdisk /dev/sdx 
fdisk -l

分好后,如图所示

image-20220811191920143

格式化

建立好分区后,需要对分区用合适的文件系统进行格式化。这里用mkfs.ext4命令格式化Linux filesystem类型的分区,用mkfs.vfat命令格式化 EFI 分区。如下命令中的 sdax 中,x 代表分区的序号。格式化命令要与上一步分区中生成的分区名字对应才可以。

磁盘若事先有数据,会提示你: ‘proceed any way?’ 按 y 回车继续即可。

1
2
3
4
mkfs.ext4  /dev/sdax            
mkfs.vfat /dev/sdax
mkswap /dev/sdax
swapon /dev/sdax

挂载

在挂载时,挂载是有顺序的,先挂载根分区,再挂载 EFI 分区。 这里的 sdax 只是例子,具体根据你自身的实际分区情况来。

1
2
3
mount /dev/sdax  /mnt
mkdir /mnt/efi
mount /dev/sdax /mnt/efi

添加国内镜像源(可选)

可选,但不推荐.推荐走代理以避免使用国内的镜像等服务.

使用如下命令编辑镜像列表:

1
vim /etc/pacman.d/mirrorlist

其中的首行是将会使用的镜像源。添加中科大或者清华的放在最上面即可。

1
2
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

如果其速度不佳,可以手动指定其他镜像源。完整的镜像源列表可参考官方镜像源生成器

镜像源(如 arch linux 清华镜像源)以及第三方源(如 archlinux-cn)可以知道你的 ip 是什么,什么时候更新了系统,什么时候检查了系统,什么时候更新了什么软件,你安装的软件列表是什么。在威权国家的镜像源维护者完全有可能根据威权当局的要求提供这些数据,很多维护者在网络上几乎是实名上网的,他们没有任何抵抗能力,进一步的,威权国家可以根据这些元数据与你产生的其他元数据进行比对,从而对你进行进一步的定位与辨识。简单举一个例子,要求维护者提供或监视安装了 v2ray/qv2ray 等软件包的使用者的 ip,以及安装时间,以及其全部软件列表。

如果你在安装 arch linux 时的网络已经处于代理模式下,可以选择一个与你代理位置较近的,非威权国家的镜像源来使用。如果你在安装 arch linux 时的网络环境没有代理,那么在安装结束后,需要尽快更换一个非威权国家的镜像源来使用。如下列举一些较为优质的国际源。

1
2
3
4
5
Server = https://mirror.archlinux.tw/ArchLinux/$repo/os/$arch   
Server = https://mirror.0xem.ma/arch/$repo/os/$arch
Server = https://mirror.aktkn.sg/archlinux/$repo/os/$arch
Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch
Server = https://mirrors.cat.net/archlinux/$repo/os/$arch

安装系统

部分是可选的

1
pacstrap /mnt base base-devel linux linux-headers dhcpcd vim open-vm-tools gtkmm3 net-tools asp wget openssh

生成 fstab 文件

fstab 用来定义磁盘分区

1
genfstab -U /mnt >> /mnt/etc/fstab

可选: 复查一下 /mnt/etc/fstab 确保没有错误

1
cat /mnt/etc/fstab

环境切换

把环境切换到新系统的/mnt 下

1
arch-chroot /mnt

时区设置

设置时区,在/etc/localtime 下用/usr 中合适的时区创建符号连接。如下设置上海时区。

1
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

时间设置

随后进行硬件时间设置,将当前的正确 UTC 时间写入硬件时间。

1
2
timedatectl set-ntp true    
hwclock --systohc --utc

语言设置

Locale 决定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。

首先使用 vim 编辑 /etc/locale.gen,去掉 en_US.UTF-8 所在行以及 zh_CN.UTF-8 所在行的注释符号(#)。这里需要使用 vim 的寻找以及编辑功能,如果你忘记了,请翻到上一节复习 vim 的操作。

1
vim /etc/locale.gen		

然后使用如下命令生成 locale。

1
locale-gen

最后向 /etc/locale.conf 导入内容

1
echo 'LANG=en_US.UTF-8'  > /etc/locale.conf	

网络设置

1
systemctl enable dhcpcd.service 

设置主机名

首先在/etc/hostname设置主机名

1
vim /etc/hostname

加入你想为主机取的主机名,这里比如叫 myarch。

接下来在/etc/hosts设置与其匹配的条目。

1
vim /etc/hosts

加入如下内容

1
2
3
127.0.0.1   localhost
::1 localhost
127.0.1.1 myarch

某些情况下如不设置主机名,在 KDE 下可能会存在网络情况变更时无法启动 GUI 应用的问题,在终端中出现形如No protocol specified qt.qpa.xcb: could not connect to display的错误,这种情况较为少见[3][4][5]

为 root 用户设置密码

1
passwd root

安装微码

1
2
pacman -S intel-ucode   
pacman -S amd-ucode

安装引导程序

1
2
pacman -S grub efibootmgr   
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB

接下来编辑/etc/default/grub 文件,去掉GRUB_CMDLINE_LINUX_DEFAULT一行中最后的 log level 参数
同时在同一行加入 nowatchdog 参数,这可以显著提高开关机速度.

1
vim /etc/default/grub
image-20220819184545246

另外,GRUB_TIMEOUT=5意思是开机引导时间为5秒,这里建议改为1秒(看个人喜好).

最后生成 GRUB 所需的配置文件

1
grub-mkconfig -o /boot/grub/grub.cfg

完成安装

1
2
3
exit                
umount -R /mnt
reboot

相关配置

Open-VM-Tools

可选,非必要: 先尴尬地查看下系统状态

1
systemctl status

然后启动Open-VM-Tools相关服务并设置为开机启动

1
2
systemctl enable --now vmtoolsd.service
systemctl enable --now vmware-vmblock-fuse.service

可选,非必要: 然后看看都在运行没.

1
2
systemctl status vmtoolsd.service
systemctl status vmware-vmblock-fuse.service

image-20220821180303275

启动后,我们可以看到,支持ESXI的关机操作了~

Vim /etc/default/grub

image-20220819152549788

官方 VMware Tools(强烈不推荐,建议忽略)

1
2
3
4
pacman -R open-vm-tools 
git clone https://github.com/rasa/vmware-tools-patches.git
cd vmware-tools-patches
./patched-open-vm-tools.sh

系统升级

1
pacman -Syu

其他

删除软件包

删除单个软件包,保留其全部已经安装的依赖关系

1
pacman -R package_name

删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:

1
pacman -Rs package_name

警告: 删除类似 gnome 这样的软件包组时,将会忽略组中软件包的安装原因,因为实际操作上执行的是逐一删除软件组的每一个软件,依赖软件包的安装原因不会被忽略。

上面这条命令在移除包含其他所需包的组时有时候会拒绝运行。这种情况下可以尝试

1
pacman -Rsu package_name

要删除软件包和所有依赖这个软件包的程序:

警告: 此操作是递归的,请小心检查,可能会一次删除大量的软件包。

1
pacman -Rsc package_name

要删除一个被其他软件包依赖的软件包,但是不删除依赖这个软件包的其他软件包:

警告: 此操作有破坏系统的能力,应该尽量避免使用。详情请看 避免某些 Pacman 命令

1
pacman -Rdd package_name

pacman 删除某些程序时会备份重要配置文件,在其后面加上*.pacsave扩展名。-n 选项可以避免备份这些文件:

1
pacman -Rn package_name

注意: pacman 不会删除软件自己创建的文件(例如主目录中的“点文件”不会被删除。)

清理软件包缓存

pacman 将下载的软件包保存在 /var/cache/pacman/pkg/ 并且不会自动移除旧的和未安装版本的软件包。这样做有一些好处:

  1. 这样允许降级软件包而不需要通过其他方式提取旧版本,例如 Arch Linux Archive.
  2. 被卸载的软件包可以轻易地直接从缓存文件夹重新安装,不需要重新从软件仓库下载。

然而,需要定期手动清理缓存来避免该文件夹无限制增大。

pacman-contrib 提供的 paccache(8) 脚本默认会删除所有缓存的版本和已卸载的软件包,除了最近的3个会被保留:

1
paccache -r	

可以启用paccache.timer来每周删除不使用的包

1
systemctl enable --now paccache.timer

要删除目前没有安装的所有缓存的包,和没有被使用的同步数据库,执行:

1
pacman -Sc

删除缓存中的全部文件,使用两次-c开关。这是最为激进的方式,将会清空缓存文件夹:

1
pacman -Scc

更多信息请查看wiki