系统安装
4277 字
21 分钟
系统安装

系统安装
[TOC]
2025年-12月-01日
今天正式开始学习oldboy老男孩教育课程,一切从0开始
- 任何时候都==保持空杯心态==
- 将自己之前学的知识都倒出去,只有这样才能更好的学习新知识
- 不骄不躁,认真跟着老师的实验走,重新学一遍又如何
- 一定要跟着老师的步骤,一步一步操作,不要跳步
- 主打听话就可以了,你引以为傲的那些基础,掌握的很不牢靠
- 你感觉自己会,实际上根本不行,好好沉淀!
vmware虚拟化软件

- 这个是从外到内,可以有多台虚拟机
Tip
-
“虚拟化”的欺骗行为,不是说你给虚拟机分 20G 硬盘,他就占那么多
-
内存、硬盘、你分给虚拟机的时候随便分
-
实际使用不会超过你的宿主机中的配置
-
-
你虚拟机用多少,给你多少 —> 就是不会超过你分配的最大的资源

⚠️ 否则会立马,分配对应的磁盘空间,非常耗费空间
安装vmware
"默认下一步" ⚠️ 不要安装在C盘 ✅️ 点击许可证 --> 输入秘钥vmware 17JU090-6039P-08409-8J0QH-2YR7FZF3R0-FHED2-M80TY-8QYGC-NPKYFFC7D0-D1YDL-M8DXZ-CYPZE-P2AY6⚠️ 注意vmware安装完成后不要移动安装目录
通过是否拥有 ==vmnet8网卡== 来检查是否安装成功
vmnet8网卡
- 查看是否有vmnet8网卡,如果没有 ---> 说明安装失败❌
- 后续未启用VMnet8会影响虚拟机网络的连接
⚠️ 即使是未连接也没有关系,只要有这一张网卡就行

Kylin V10安装

Tip
- 右边的限制,就是我们最高能使用的资源
Note
❓ 为什么我们用VMware安装 ==麒麟v10== (Kylin V10)的时候,安装版本选为Centos 7
- VMware 官方未内置对银河麒麟的直接支持
- VMware 的虚拟机创建向导中只列出了主流或广泛使用的操作系统,而银河麒麟属于国产操作系统,尚未被 VMware 官方列入支持列表
- 银河麒麟 V10 基于 CentOS / RHEL 生态
- 银河麒麟 V10(特别是服务器版)早期版本是基于 CentOS 7 / RHEL 7 的源码构建的
- 因此,其内核版本、驱动模型、启动机制、文件系统结构等与 CentOS 7 高度相似
- 合理选择安装版本可让 VMware:
- 自动加载适配的虚拟硬件驱动
- 合理分配默认资源(内存、磁盘 I/O 模式)
- 避免因操作系统类型不匹配导致的兼容性问题(如无法识别磁盘、黑屏、卡死等)

CPU & 核心
- 下图为一个CPU & 4个核心
- 把CPU比作工厂,把核心比作工人

这里相当于是,一个工厂里面有四个工人 —> 总共4个工人
Note
这里并没有涉及到运行内存

当然我们也可这样子配 —> 这样也是4个核心

具体步骤


往下拉,还有两个工具 系统工具和Mac手册




Important
这个根据优先级,==自动连接==,就是相当于开机自启动


- 刚开始我打开的时候挺懵的,为什么是这个样子呢???
- 我还以为我配置安装有错误呢!

翻译后

- ⚠️ 注意 选择顺序 有时候不同

Kylin 桌面版安装
- 软件选择安装

下面还有东西要安装


多用户,多任务


📌 不管哪个终端切进去,操作的都是这一个系统,互不影响
切换终端的快捷键
ctrl+alt+F3~F6 # 切命令行界面 --> 这些都是终端tty'F1、F2是桌面'ctrl+alt+(F1、F2) # 切回桌面Ubuntu安装
- ==版本: 24.04==
- 这里我们只说 不同的点


eth0
-
在Ubuntu安装启动时,在GRUB菜单中按’e’编辑启动项
-
找到以
linux开头的行,在末尾添加参数:- net.ifnames=0 biosdevname=0
-
按 Ctrl+X 或 F10 继续启动安装







- 这里来到网卡配置, 我们先把网络断开
- 因为在安装过程中会去官方更新软件包, 速度非常慢




















Xshell连接
[C:\~]$ ssh root@10.0.0.200# 没有办法直接用root连接 <-- Ubuntu
[C:\~]$ ssh test@10.0.0.200✅️ 可以通过test直接连上来!Welcome to Ubuntu 24.04 LTS System load: 0.0 Processes: 209 Usage of /: 32.3% of 18.53GB Users logged in: 1 Memory usage: 11% IPv4 address for eth0: 10.0.0.200 Swap usage: 0%test@ubuntu:~$ whoamitest'现在的用户是test'test@ubuntu:~$ sudo su -[sudo] password for test:root@ubuntu:~#root@ubuntu:~# whoamiroot✅️ 成功切换至root用户 1.但是每次都切换登录会不会太麻烦了点 2.Xshell有登陆的脚本的

test@ubuntu:~$ sudo su -[sudo] password for test:📌 '但每次连接时都需要输入密码'
1)修改sudo提权为vim编辑器# 文件路径: /etc/sudoersDefaults use_pty'在它下面添加这一行!'Defaults editor=/usr/bin/vim, env_editorroot@ubuntu:~# sed -i '/use_pty/a\Defaults editor=/usr/bin/vim, env_editor' /etc/sudoers# visudo 修改编辑器为vim
2)所有用sudo命令的用户,都不需要使用密码root@ubuntu:~# sed -i '/^%sudo/c\%sudo ALL=(ALL:ALL) ALL, NOPASSWD:ALL /etc/sudoers# 以%sudo开头的行,全部替换为后面的内容root@ubuntu:~# sed -n '/^%sudo/p' /etc/sudoers%sudo ALL=(ALL:ALL) ALL, NOPASSWD:ALL'完美修改!'
3)再次用Xshell测试登录'双击选项卡,自动登录至Xshell'test@ubuntu:~$ sudo su -root@ubuntu:~## 无需密码直接登录进来了⭐系统优化
4)磁盘大小root@ubuntu:~# lsroot@ubuntu:~# df -hFilesystem Size Used Avail Use% Mounted ontmpfs 387M 1.6M 386M 1% /run/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.0G "12G" 35% /'我这一看根分区还剩12G,就赶紧分了点空间给它'# 因为上面安装的时候 --> 我们分区用的是 逻辑卷LVM
5)逻辑卷扩容root@ubuntu:~# vgdisplay✅️ 查看卷组信息 --> 还有多少空闲空间 --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size <38.00 GiB PE Size 4.00 MiB Total PE 9727 Alloc PE / Size 4863 / <19.00 GiB Free PE / Size 4864 / 19.00 GiB VG UUID ZOQclS-dI6E-Y4rs-MxKR-OeJE-Ipgg-bpVN3k
root@ubuntu:~# lvextend -L 30G -r /dev/mapper/ubuntu--vg-ubuntu--lv✅️ 扩展逻辑卷 --> 扩展至30G
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv# 将剩余的空间都给它root@Ceph-201 ~# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv# 让文件系统识别新空间 --> 使他立马生效root@ubuntu:~# lvdisplay✅️ 查看逻辑卷信息 --- Logical volume --- LV Path /dev/ubuntu-vg/ubuntu-lv ....... LV Size 30.00 GiB'已经扩充至30G'root@ubuntu:~# df -hFilesystem Size Used Avail Use% Mounted ontmpfs 387M 1.6M 386M 1% /run/dev/mapper/ubuntu--vg-ubuntu--lv 30G 6.0G "22G" 22% /'现在可用剩余空间由 12G --> 22G'
6)PS1变量root@ubuntu:~# cat >> /etc/profile <<EOF# PS1变量PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \W\[\e[0m\]]\\$ "EOFroot@ubuntu:~# source /etc/profile[root@ubuntu ~]$============================有问题❓⭐ 1.两边的括号[ ], 给人的感觉就像在操作Centos一样! 2.Ubuntu 的 ~/.bashrc 里自带 PS1 定义,会覆盖掉你在 /etc/profile 里设的值 # 因为.bashrc 后读取 ⚠️ ~/.bashrc # 用户级变量文件 --> 只对当前用户生效 ⚠️ /etc/profile # 系统系变量文件 --> 所有用户都生效root@ubuntu:~# grep 'PS1' ~/.bashrc[ -z "$PS1" ] && return PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"============================# 把原来/etc/profile文件中的ps1变量删除掉root@ubuntu:~# echo "PS1='\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \W\[\e[0m\]\$ '" >> ~/.bashrc# 追加到最后一行root@ubuntu:~# source ~/.bashrcroot@ubuntu ~$'有bug --> 我登录的是root(#), 怎么提示符变为$'✅️ root 看 #,普通用户看 $root@ubuntu ~$ tail -1 ~/.bashrcPS1='xxx...\W\[\e[0m\]$ ' 📌 丢了一个转义字符, 应该是 \$'所以在 echo 或者 cat 的时候, \$ 前自行多加一个\转义字符'PS1='xxx...\W\[\e[0m\]\\$ '✅️ root@ubuntu ~# ✅️
7)软件源更换root@ubuntu ~# cat /etc/apt/sources.list'以前版本的位置'# Ubuntu sources have moved to /etc/apt/sources.list.d/ubuntu.sources'现在迁移了 --> sources.list.d/ubuntu.sources 子目录下'root@ubuntu ~# ls /etc/apt/sources.list.d/ubuntu.sources/etc/apt/sources.list.d/ubuntu.sourcesroot@ubuntu ~# cp /etc/apt/sources.list.d/ubuntu.sources{,.back}'先备份'root@ubuntu ~# ls /etc/apt/sources.list.d/ubuntu.sources*/etc/apt/sources.list.d/ubuntu.sources/etc/apt/sources.list.d/ubuntu.sources.back📌 换清华源(Ubuntu 24.04 新格式)"24.04 改用了 DEB822 格式"root@ubuntu ~# cat /etc/apt/sources.list.d/ubuntu.sourcesTypes: debURIs: http://archive.ubuntu.com/ubuntu/Suites: noble noble-updates noble-backportsComponents: main restricted universe multiverseSigned-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: debURIs: http://security.ubuntu.com/ubuntu/Suites: noble-securityComponents: main restricted universe multiverseSigned-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg'把URIs换成清华源的就行'URIs: http://mirrors.tuna.tsinghua.edu.cn/ubuntu/# 两条都换成一样的即可!root@ubuntu ~# sed -i '/^URI/c\URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/' /etc/apt/sources.list.d/ubuntu.sourcesroot@ubuntu ~# apt update && apt upgrade -y
8)提高下载速度(小调优,不是核心)# 文件需要手动创建"放一些 apt 调优参数" --> 数字前缀 99 是为了最后加载,不会被系统自带的覆盖root@ubuntu ~# cat > /etc/apt/apt.conf.d/99local << 'EOF'# 允许同时下载多个包(并发下载)# 默认是串行的(一个个下载) Acquire::http::Pipeline-Depth "5";
# 同时建立多个连接 Acquire::Queue-Mode "access"; Acquire::Languages "none";
# 不用每次都下载翻译文件,省带宽 Acquire::http::No-Cache "false";EOF
9)安装常用的软件包root@ubuntu ~# apt-get install -y vim tree tar zip wget bash-completion lrzsz net-tools sysstat iotop iftop htop unzip netcat-openbsd nmap telnet bc psmisc apache2-utils dnsutils nethogs expect cowsay sl'apt 或者是 apt-get 都是可以的'root@ubuntu ~# cowsay "hhh" _____< hhh > ----- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
10)字符优化(登录页面)root@ubuntu ~# cat /etc/issueUbuntu 24.04 LTS \n \l'把这两个文件里面的东西都清空掉!'root@ubuntu ~# cat /etc/issue.netUbuntu 24.04 LTSroot@ubuntu ~# > /etc/issue && > /etc/issue.netroot@ubuntu ~# ls /etc/update-motd.d/00-header 50-motd-news 91-contract-ua-esm-status 95-hwe-eol 98-reboot-required10-help-text 85-fwupd 91-release-upgrad 97-overlayroot50-landscape-sysinfo 90-updates-available 92-unattended-upgrade 98-fsck-at-reboot'这些都是系统信息横幅'📌 它们在您登录时显示,目的是提供系统状态、安全更新等信息| 脚本名 | 作用 | 是否建议删除 |
|---|---|---|
00-header | 显示系统名、内核、时间等基础信息 | ❌ 保留(通常很干净) |
10-help-text | 显示帮助提示(如 To run a command as administrator...) | ⚠️ 可删(纯文本,非广告) |
50-motd-news | 核心广告源:显示 Ubuntu 新闻、Landscape、ESM 链接等 | ✅ 强烈建议删除 |
85-fwupd | 显示固件更新状态(fwupd) | ⚠️ 可选删(非广告,但冗余) |
90-updates-available | 显示可应用的更新数量(如 349 updates can be applied) | ✅ 建议删除(您明确说“负载也不想要”) |
91-contract-ua-esm-status | ESM 广告:提示 ESM 订阅、pro 链接等 | ✅ 必须删(您看到的 ESM Apps 就来自这里) |
91-release-upgrade | 提示新版本升级(如 Noble → Oracular) | ⚠️ 可删(如果您不关心升级) |
92-unattended-upgrades | 显示自动更新状态 | ⚠️ 可删 |
95-hwe-eol | HWE 内核生命周期提醒 | ⚠️ 可删 |
97-overlayroot | overlayroot 状态(少见) | ⚠️ 可删 |
98-fsck-at-reboot | fsck 检查提醒 | ⚠️ 可删 |
98-reboot-required | 重启提醒(如内核更新后) | ⚠️ 可删(但实用,建议留或改) |
root@ubuntu ~# ls /etc/update-motd.d/ | grep -v 0010-help-text50-landscape-sysinfo50-motd-news85-fwupd90-updates-available91-contract-ua-esm-status91-release-upgrade92-unattended-upgrades95-hwe-eol97-overlayroot98-fsck-at-reboot98-reboot-requiredroot@ubuntu ~# ls /etc/update-motd.d/ | grep -v 00 | xargs rm -rfroot@ubuntu ~# ls /etc/update-motd.d/00-header 50-motd-news 91-contract-ua-esm-status 95-hwe-eol 98-reboot-required10-help-text 85-fwupd 91-release-upgrad 97-overlayroot50-landscape-sysinfo 90-updates-available 92-unattended-upgrade 98-fsck-at-reboot'没有删除???'✅️ 因为 ls 只输出文件名,不带路径✅️ xargs rm -rf 在当前目录执行,而不是在 /etc/update-motd.d/ 里删root@ubuntu ~# pwd/root# 当前路径并没有这些东西root@ubuntu ~# cd /etc/update-motd.d/root@ubuntu update-motd.d# ls | grep -v 00 | xargs rm -rfroot@ubuntu update-motd.d# ls00-headerroot@ubuntu update-motd.d# cat > /etc/update-motd.d/99-local << 'SCRIPT'#!/bin/bashcat << 'EOF' (@) * (@) * (@) : * (@) * (@) * .; (@) * (@) * (@) * (@) * ; * ; (@) * ; * : ;\ \ \ \| / / /; \\ \ Y/ / / `_\ |/ _' ' / \\Y// \ ( ,-}={-, ) \_//((\_/ //))(\ (/ )) (/EOFSCRIPTroot@ubuntu update-motd.d# chmod +x 99-local'重新登录终端 --> 自动显示'
11)ssh连接优化root@ubuntu ~# cat >>/etc/ssh/sshd_config<<EOFUseDNS no# 相当于网络命令的-n选项,这个就是说不解析为主机名,直接成IP地址.GSSAPIAuthentication no# 关闭GSS认证.EOFroot@ubuntu ~# systemctl restart ssh.service# 不是sshd,就是ssh服务,没有d
12)时间优化,同步# 时区,时钟root@ubuntu ~# timedatectl status Local time: Thu 2026-05-14 13:12:15 UTC ❌️ 本地时间也错误 Universal time: Thu 2026-05-14 13:12:15 UTC RTC time: Thu 2026-05-14 13:12:15 Time zone: Etc/UTC (UTC, +0000) ❌️ 时区错误root@ubuntu ~# timedatectl set-timezone Asia/Shanghairoot@ubuntu ~# timedatectl status Local time: Thu 2026-05-14 21:15:14 CST Universal time: Thu 2026-05-14 13:15:14 UTC RTC time: Thu 2026-05-14 13:15:14 Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: yes --> ✅️ 系统时钟已经成功与时间服务器同步过 NTP service: active --> ✅️ 负责时间同步的 NTP 服务正在运行中 RTC in local TZ: no'Ubuntu 系统通常使用 systemd-timesyncd 服务来进行轻量级的时间同步'
13)字符集就用这个英文的就行了root@ubuntu ~# echo $LANGen_US.UTF-8
14)SElinux"Ubuntu 默认用 AppArmor,不是 SELinux"root@ubuntu ~# systemctl status apparmorActive: active (exited) enabled# 关闭 AppArmor --> 同时禁止开机自启root@ubuntu ~# systemctl disable --now apparmorroot@ubuntu ~# systemctl status apparmorActive: inactive (dead) disabled
15)防火墙"Ubuntu 不用 firewalld(那是 CentOS/RHEL 的),Ubuntu 的防火墙叫 ufw(Uncomplicated Firewal)"root@ubuntu ~# systemctl status ufwActive: active (exited) enabled;# server版默认是运行着的ufw的root@ubuntu ~# systemctl disable --now ufwSynchronizing state of ufw.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.Executing: /usr/lib/systemd/systemd-sysv-install disable ufwRemoved "/etc/systemd/system/multi-user.target.wants/ufw.service".root@ubuntu ~# systemctl status ufwActive: inactive (dead) disabled'安装持久化工具 --> iptables'root@ubuntu ~# apt install iptables-persistent -y# 中间有弹窗,yes就行
16)允许root登录#PermitRootLogin prohibit-password 1.Ubuntu 默认是 prohibit-password(禁止 root 密码登录) # 即使被注释了 --> 默认也是禁止root密码登录的 2.你必须在配置里显式写 PermitRootLogin yes 才能覆盖 3.必须重启 ssh 服务!root@ubuntu ~# echo 'PermitRootLogin yes' >> /etc/ssh/sshd_configroot@ubuntu ~# echo 'root:1' | sudo chpasswd'解锁root + 设置密码'root@ubuntu ~# systemctl restart ssh
17)文件描述符echo "* - nofile 65535" >> /etc/security/limits.conf# 在Rocky_Linux中添加完直接就生效了==============================* - nofile 65535# - 表示同时设置 soft 和 hard limit,但某些 PAM 版本对此支持不一致# 在 Ubuntu 上, * 通配符不匹配 root 用户, 很多服务(尤其是 systemd 管理的)不受 limits.conf 直接控制root@ubuntu ~# cat >> /etc/security/limits.conf << 'EOF'* soft nofile 65535* hard nofile 65535root soft nofile 65535root hard nofile 65535EOF
# Ubuntu 的 PAM 默认没有启用 pam_limits.soroot@ubuntu ~# echo "session required pam_limits.so" >> /etc/pam.d/common-sessionroot@ubuntu ~# echo "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive# 手动添加
"Systemd 服务的限制(高频踩坑点)"# 如果你的进程是通过 systemd 启动的(SSH、Nginx、Docker 等),limits.conf 完全不生效。systemd 有自己的限制机制'设置全局 systemd 默认限制:'root@ubuntu ~# echo "DefaultLimitNOFILE=65535" >> /etc/systemd/system.confroot@ubuntu ~# echo "DefaultLimitNOFILE=65535" >> /etc/systemd/user.confroot@ubuntu ~# ulimit -n1024root@ubuntu ~# reboot# 重启系统生效root@ubuntu ~# ulimit -n65535bash_config.sh
#!/bin/bash# author=Jiuzhao
sed -i '/use_pty/a\Defaults editor=/usr/bin/vim, env_editor' /etc/sudoers# visudo 修改编辑器为vim
sed -i '/^%sudo/c\%sudo ALL=(ALL:ALL) ALL,NOPASSWD:ALL' /etc/sudoers# 以%sudo开头的行,全部替换为后面的内容# 所有用sudo命令的用户,都不需要使用密码
lvextend -L 30G -r /dev/mapper/ubuntu--vg-ubuntu--lv > /dev/null# 扩容逻辑卷
# PS1 变量cat >> ~/.bashrc <<EOF# 我的PS1变量PS1='\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \W\[\e[0m\]\\$ 'EOFsource ~/.bashrc
# 更换软件源sed -i '/^URI/c\URIs: http://mirrors.tuna.tsinghua.edu.cn/ubuntu/' /etc/apt/sources.list.d/ubuntu.sourcesapt-get update > /dev/null
# 优化下载速度(小调优,不是核心)cat > /etc/apt/apt.conf.d/99local << 'EOF'# 允许同时下载多个包(并发下载)# 默认是串行的(一个个下载) Acquire::http::Pipeline-Depth "5";
# 同时建立多个连接 Acquire::Queue-Mode "access"; Acquire::Languages "none";
# 不用每次都下载翻译文件,省带宽 Acquire::http::No-Cache "false";EOF
# 安装常用的软件包apt-get install -y vim tree wget bash-completion lrzsz net-tools sysstat iotop iftop htop unzip netcat-openbsd nmap telnet bc psmisc apache2-utils dnsutils sshpass nethogs expect cowsay sl
# 其他优化> /etc/issue && > /etc/issue.net# 字符花cd /etc/update-motd.d/ls | grep -v 00 | xargs rm -rfcat > /etc/update-motd.d/99-local << 'SCRIPT'#!/bin/bashcat << 'EOF' (@) * (@) * (@) : * (@) * (@) * .; (@) * (@) * (@) * (@) * ; * ; (@) * ; * : ;\ \ \ \| / / /; \\ \ Y/ / / `_\ |/ _' ' / \\Y// \ ( ,-}={-, ) \_//((\_/ //))(\ (/ )) (/EOFSCRIPTchmod +x 99-local# 赋权 --> 返回目录cd -
# ssh连接优化cat >>/etc/ssh/sshd_config<<EOFUseDNS no# 相当于网络命令的-n选项,这个就是说不解析为主机名,直接成IP地址.GSSAPIAuthentication no# 关闭GSS认证.EOFsystemctl restart ssh.service
# 调整时区timedatectl set-timezone Asia/Shanghai
# 类似于SElinuxsystemctl disable --now apparmor &> /dev/null
# 关闭防火墙systemctl disable --now ufw &> /dev/null
# 安装Iptables持久化工具# 默认有弹窗# 防止 debconf 交互export DEBIAN_FRONTEND=noninteractivedebconf-set-selections << EOFiptables-persistent iptables-persistent/autosave_v4 boolean trueiptables-persistent iptables-persistent/autosave_v6 boolean trueEOF# 安装(不会卡住)apt-get install -y iptables-persistent# 开机自启# systemctl enable --now iptables.servicesystemctl daemon-reload
# ssh允许root登录echo 'PermitRootLogin yes' >> /etc/ssh/sshd_configecho 'root:1' | sudo chpasswdsystemctl restart ssh
# 文件描述符# 分开软硬限制cat >> /etc/security/limits.conf << 'EOF'* soft nofile 65535* hard nofile 65535root soft nofile 65535root hard nofile 65535EOF# Ubuntu 的 PAM 默认没有启用 pam_limits.soecho "session required pam_limits.so" >> /etc/pam.d/common-sessionecho "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive# 手动添加# Systemd 服务的限制 --> 有些服务不受 limits.conf 直接控制echo "DefaultLimitNOFILE=65535" >> /etc/systemd/system.confecho "DefaultLimitNOFILE=65535" >> /etc/systemd/user.confreboot# 重启change_host_ip.sh
#!/bin/bash#author: jiuzhao#desc: change ip and hostname#version: v1.0
[ $# -ne 2 ] && { echo "Usage: $0 <hostname> <new_ip>" echo "Example: $0 web01 192.168.1.200" exit 1}
# 获取IP地址的最后一段# 例如192.168.1.200获取200,因为两个网卡都要进行修改ip=$(hostname -I | awk '{print $1}' | awk -F. '{print $NF}')# $NF最后一列# -F. 以.为分隔符new_ip=$(echo $2 | awk -F. '{print $NF}')# $2是我们刚才输入进去的IP地址
# 新主机名new_hostname=$1
# 修改IP(假设使用ifcfg-eth0)sed -i "s#10.0.0.$ip#10.0.0.$new_ip#g" /etc/netplan/50-cloud-init.yamlsed -i "s#172.31.128.$ip#172.31.128.$new_ip#g" /etc/netplan/50-cloud-init.yaml
# 修改主机名hostnamectl hostname $new_hostname# ubuntu中可以不要set-hostname --> 优化为hostname
# 重启网络netplan apply
echo "hostname changed to $new_hostname IP changed to $2 "虚拟机使用
挂起
Tip
✅️ “在不需要长期关机的情况下,建议优先使用 挂起(Suspend) 而非 关闭电源(Power Off),以保留当前运行状态并提高效率”
挂起就是把内存状态(以及其他运行时状态)写入磁盘,以便后续恢复


Note
⚠️ 同一个虚拟机,只能在一个页面进行运行
小技巧

移除or删除

- 移除不是真正的删除
- 右键->管理->从磁盘中删除
💡 不小心移除的虚拟机可以使用打开或者扫描功能
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!



