Linux 系统在线扩容磁盘空间
参考资料
磁盘分区与挂载
扩展磁盘容量
假设在 VMware Workstation 中将磁盘容量扩展了 10GB。
- 启动虚拟机,查看现有分区挂载情况:
记录需要扩容的文件系统名称,例如 /dev/sda3。
- 查看磁盘分区情况:
1
2
3
|
fdisk -l
# 或者
lsblk
|
此时会发现磁盘空间增加了 10GB。
如果遇到报错:GPT PMBR size mismatch
1
2
|
sudo parted -l
# 然后输入 Fix
|
- 使用 fdisk 创建新分区:
按照提示输入 p 或 n,直到显示分区已设置为 Linux 类型并设置大小,输入 wq 退出。
再次执行 fdisk -l,会发现多了一个新分区,假设为 /dev/sda4。
挂载分区(可选)
如果需要将新分区挂载到文件夹:
分区扩容(LVM 模式)
创建卷组
如果没有卷组,先创建:
1
2
3
|
vgcreate 卷组名 空闲分区
# 例如
vgcreate vg1000 /dev/sda4
|
初始化物理卷
1
2
3
4
5
|
vgdisplay # 查看并记住 VG Name(此时 Free PE 为 0)
partprobe # 使分区表生效
sudo pvcreate -ff -y /dev/sda4 # 将新分区初始化为物理卷
vgextend VGName 新分区名 # 扩展卷组,例如 vgextend vg1000 /dev/sda4
vgdisplay # 再次查看,此时 Free PE 有空间了
|
执行扩容
1
2
3
|
lvextend -l +100%FREE 需要扩容的分区 新分区
# 例如
lvextend -l +100%FREE /dev/mapper/centos-root /dev/sda4
|
根据文件系统类型执行相应命令:
1
2
3
4
5
6
7
8
|
# 查看文件系统类型
cat /etc/fstab
# ext 类型
resize2fs 需要扩容的分区
# XFS 类型
xfs_growfs 需要扩容的分区
|
最后确认:df -lh
根目录扩容
如果需要在根目录 / 上扩容(参考:https://blog.csdn.net/xwmrqqq/article/details/109828166):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# 1. 进入 fdisk
fdisk /dev/sda
# 2. 删除原分区,输入 d
# 3. 重新创建分区,输入 n(注意起始扇区要一致)
# 4. 输入 p 确认大小,wq 保存退出
# 4. 通知系统分区表变化
partprobe /dev/sda
# 5. 对文件系统扩容
resize2fs 挂载在根目录的分区
# 6. 确认结果
df -lh
|
注意事项
- 执行操作前建议备份重要数据
- fdisk 操作时谨慎删除和创建分区,避免数据丢失
- LVM 扩容时确保卷组和逻辑卷名称正确
- 调整文件系统大小时使用与文件系统类型匹配的命令
Python 版本切换
Ubuntu 系统一般自带 Python2,如果还安装了 Python3,可按以下步骤切换版本。
方法一:修改软链接
1
2
3
4
5
6
7
|
# 1. 删除原有软链接
sudo unlink /usr/bin/python
sudo unlink /usr/bin/python3
# 2. 创建新软链接指向 Python3
sudo ln -s /usr/bin/python3.8 /usr/bin/python
sudo ln -s /usr/bin/python3.8 /usr/bin/python3
|
注意:Python 安装在 /usr/bin 目录,库安装在 /usr/local/lib/pythonxx(xx 为版本号)。
pip 镜像加速
1
|
pip3 install opencv-python -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
|
Java 安装
1
2
3
4
5
6
7
8
|
# 安装 OpenJDK
sudo apt install openjdk-8-jdk-headless
# 查看安装路径
whereis jvm
cd /usr/lib/jvm
cd java-8-openjdk-amd64/
ls
|
配置环境变量,编辑 vi ~/.bashrc,添加:
1
2
|
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
|
VMware 复制粘贴问题
1
2
3
|
sudo apt autoremove open-vm-tools
sudo apt install open-vm-tools
sudo apt install open-vm-tools-desktop
|
网络配置
设置子网和主机名
参考:https://zhuanlan.zhihu.com/p/455097916
VMware 虚拟网络编辑器配置
- 打开 VMware,编辑 → 虚拟网络编辑器,点击更改设置(管理员权限)
- VMnet0 确认为桥接模式
- 选中 VMnet8,选择 NAT 模式,修改子网 IP(如 192.168.10.0)
- 点击 NAT 设置,修改网关 IP(如 192.168.10.2)
Windows 网络适配器配置
- 控制面板 → 网络和 Internet → 查看网络状态和任务
- 点击更改适配器设置
- 双击 VMnet8 → 属性 → 双击 Internet 协议版本 4
- 修改默认网关、DNS 服务器与 VMware 中一致,备用 DNS 为 8.8.8.8
Ubuntu 配置
参考:https://blog.csdn.net/qq_19734597/article/details/104087091
1
|
sudo vim /etc/netplan/里面的文件
|
1
2
3
4
5
6
7
8
9
10
11
|
network:
version: 2
renderer: NetworkManager
ethernets:
ens33: # 网卡名称
dhcp4: no
dhcp6: no
addresses: [192.168.10.101/24]
gateway4: 192.168.10.2
nameservers:
addresses: [192.168.10.2, 8.8.8.8]
|
CentOS 配置
1
|
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
|
修改 BOOTPROTO=static、ONBOOT=yes,添加 IPADDR、GATEWAY、DNS1。
Ubuntu 系统初始配置
1
2
3
4
5
6
7
|
sudo apt update
sudo apt upgrade
# 修改 hostname
# 配置固定 IP
# 设置中文
sudo apt install net-tools # 安装 ifconfig
sudo apt install vim # 安装 vim
|
VNC 配置
编辑配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#!/bin/bash
# 启动 D-Bus 会话
# D-Bus 是一个消息总线系统,用于应用程序之间的通信
export $(dbus-launch)
# 禁用动态键盘布局系统
export XKL_XMODMAP_DISABLE=1
# 取消设置 SESSION_MANAGER 环境变量
# 通常用来指定会话管理器
unset SESSION_MANAGER
# 启动 GNOME 面板、GNOME 设置守护进程、Metacity 窗口管理器、Nautilus 文件管理器、GNOME 终端
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &
# [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
# [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# 设置桌面背景为纯色灰色
xsetroot -solid grey
# 启动 VNC 配置工具,`-iconic` 参数使它在系统托盘中运行
vncconfig -iconic &
# 启动一个终端仿真器窗口,大小为 80x24,位置在屏幕的 (10,10) 处,窗口标题为 VNC 桌面
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# 启动 GNOME 会话
gnome-session &
# 设置 VNC 服务器参数,这里定义了 VNC 服务器的数量和权限(root)
VNCSERVERS="2:root"
# 为第一个 VNC 服务器设置参数,这里定义了 VNC 窗口的几何尺寸为 800x600
VNCSERVERARGS[1]="-GEOMETRY 800x600"
|
操作 VNC 服务器:
1
2
|
vncserver -kill :1 # 杀死进程(:1 是显示号)
vncserver :1 # 启动服务
|
免密登录
配置 SSH 密钥实现免密码登录:
1
2
3
4
5
6
7
8
|
# 1. 在客户端生成密钥对
ssh-keygen -t rsa
# 2. 将公钥复制到目标服务器
ssh-copy-id 用户名@服务器IP
# 3. 之后即可免密登录
ssh 用户名@服务器IP
|
Nginx 安装配置
FTP 安装配置
CentOS 7.9 安装 MySQL
参考资料
卸载预装 MariaDB
避免与 MySQL 发生冲突:
1
2
|
rpm -qa | grep -i mariadb
rpm -ev --nodeps mariadb-libs-5.5.68-1.el7.x86_64
|
方式一:yum 在线安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
yum install -y wget
wget -i -c https://repo.mysql.com//mysql80-community-release-el7-8.noarch.rpm
# 指定版本安装
yum -y install mysql80-community-release-el7-8.noarch.rpm
yum -y install mysql-community-server-8.0.25 \
mysql-community-client-8.0.25 \
mysql-community-client-plugins-8.0.25 \
mysql-community-common-8.0.25 \
mysql-community-libs-8.0.25
# 或者直接安装最新版本
yum -y install mysql-community-server
systemctl start mysqld
|
方式二:离线包安装
假设包在 ~/mysql-8.0.25-1.el7.x86_64.rpm-bundle.tar。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
mkdir /opt/mysql8
mv mysql-8.0.25-1.el7.x86_64.rpm-bundle.tar /opt/mysql8/
tar -xvf mysql-8.0.25-1.el7.x86_64.rpm-bundle.tar
# 按顺序安装(建议)
rpm -ivh \
mysql-community-common-8.0.25-1.el7.x86_64.rpm \
mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm \
mysql-community-libs-8.0.25-1.el7.x86_64.rpm \
mysql-community-client-8.0.25-1.el7.x86_64.rpm \
mysql-community-server-8.0.25-1.el7.x86_64.rpm \
--relocate /=/opt/mysql8
systemctl start mysqld
|
参数说明:-i 安装,-v 详细输出,-h 显示进度
权限配置
如果启动时报错 Fatal error: Please read "Security" section...
检查 my.cnf 配置:
1
2
3
4
|
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
|
需要将上述路径权限赋予非 root 用户:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 创建 mysql 组和用户
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
# 更改目录权限
sudo chown -R mysql:mysql /var/lib/mysql
sudo chown -R mysql:mysql /var/run/mysqld
sudo chown -R mysql:mysql /var/log/mysqld.log
sudo chmod -R 777 /var/lib/mysql
sudo chmod -R 777 /var/run/mysqld
sudo chmod -R 777 /var/log/mysqld.log
# 初始化数据库
sudo /usr/bin/mysqld --initialize --user=mysql
sudo systemctl start mysql
sudo mysql_secure_installation
|
rpm 与 yum 对比
| rpm |
yum |
| Red Hat Package Manager |
Yellowdog Updater Modified |
| 用于 安装、查询、卸载和验证 RPM 软件包 |
使用 sudo yum install xxx.rpm 命令时,yum 会 检查软件包的依赖关系,并尝试解决这些依赖 |
通过 sudo rpm -i xxx.rpm 命令安装软件包时,直接与 RPM 数据库交互 |
它还提供了 更新、删除和查询 软件包的功能 |
调试方式
1
2
3
4
|
mysqld --verbose --debug
# 或者查看日志
cat /var/log/mysqld.log
|
后续配置
1
2
3
4
5
6
7
8
|
# 设置开机启动
systemctl enable mysqld
# 查看初始密码
grep 'password' /var/log/mysqld.log
# 登录
mysql -u 'root' -p'初始密码'
|
1
2
3
4
5
6
7
8
9
10
11
|
-- 修改密码策略
SHOW VARIABLES LIKE 'validate_password%';
SET GLOBAL validate_password.policy = low;
-- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
-- 设置远程登录
USE mysql;
UPDATE USER SET HOST = '%' WHERE USER = 'root';
FLUSH PRIVILEGES;
|
常见问题
MySQL 启动问题
- 参考:https://www.jianshu.com/p/6f054faf04a4
- 参考:https://blog.csdn.net/Shockang/article/details/118061120
yum 无法使用
如果遇到 mirrorlist.centos.org Unknown error:
- 下载阿里云 Base 源:http://mirrors.aliyun.com/repo/Centos-7.repo
- 通过 FTP 上传到
/etc/yum.repos.d/(注意备份)
- 编辑文件,将
http 改为 https
- 清除缓存并重新生成:
yum clean all && yum makecache
- 安装 wget:
yum install -y wget
虚拟机相关
中文路径转英文
https://blog.csdn.net/Andy86666/article/details/106328819
1
2
|
export LANG=en_US
xdg-user-dirs-gtk-update
|
恢复中文:
1
2
|
export LANG=zh_CN.UTF-8
xdg-user-dirs-gtk-update
|
设置 root 密码:
1
2
|
sudo passwd root
# 要求长度不小于 8
|
1
2
3
4
|
sudo apt-get update
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop
reboot
|
安装 Kali Linux
- 镜像下载:https://mirrors.aliyun.com/kali-images/kali-2025.2
- 参考:https://blog.csdn.net/m0_74030222/article/details/143866270
拓展与后续学习建议
- SSH 安全加固:学习 SSH 密钥管理、禁用密码登录、修改默认端口等安全措施
- 系统监控:掌握
top、htop、vmstat、iostat 等监控工具的使用
- 防火墙深入:学习
iptables 或 firewalld 的详细规则配置
- 自动化运维:学习 Ansible、SaltStack 等自动化工具
- 容器化部署:深入学习 Docker 和 Kubernetes
- 备份恢复:建立完善的系统备份和恢复机制