引言

从 2018 年开始入门 Linux,已经 7 年了。 从 Deepin 到 Manjaro,再到 Rocky Linux。 中间也尝试过 ArchLinux, Debian, Ubuntu, CentOS等等。

一开始入门是能用就行,折腾桌面环境。 到现在开始考虑一些安全性,长期的稳定性,不再为了图省事直接关闭防火墙和 SELinux。 每一行代码都想要理解含义。 理解配置的逻辑和哲学。

Rocky Linux

Rocky Linux 用的还不多,在此写一些备忘。

Rocky Linux 是 CentOS 替代品,适用于服务器。

  • 默认使用 SELinux

  • 使用Cockpit 面版,

  • 使用 LVM 和 xfs文件系统。 xfs文件系统,性能高,适合处理大文件,并行写入,可以不停机扩容,但是不支持缩容,跨平台兼容性差。

LVM(逻辑卷管理)

层级 作用 类比
物理卷 PV 实际的硬盘或分区 地基
卷组 VG 若干物理卷组合的池子 水泥池
逻辑卷 LV 从卷组中划分出来的卷 建在池子里的房间

可以用 pvdispaly 查看,或者简写为 pvs。同理 vgslvs

示例

先用 lsblk 查看硬盘情况。只有 nvme0n1p3 分区中有 3 个 lv:

AMD-ZQW-srv ➜  ~ lsblk -f
NAME        FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1      ntfs                 Music 123419620B147062                         37.4G    98% /hdd7
nvme0n1
├─nvme0n1p1 vfat        FAT32          1234-B31A                               562.6M     6% /boot/efi
├─nvme0n1p2 xfs                        1234d41c-4f32-4759-9d14-652ee9c5688f     64.6M    93% /boot
└─nvme0n1p3 LVM2_member LVM2 001       1234Wo-pyLw-p278-rTFa-D4ix-7ob1-jEKxpp
  ├─rl-root xfs                        12347aef-b5a5-4034-8b01-1449de8cc13f     21.7G    69% /
  ├─rl-swap swap        1              1234c97d-5ec9-4720-84f2-30440f4269d3                  [SWAP]
  └─rl-home xfs                        1234270f-41f8-4d69-bd4d-43e20c790d82    768.9G     9% /home

3个 lv 中,有一个是 swap,另外两个 lv 的文件格式都是 xfs。

df 一下,作为参考:

AMD-ZQW-srv ➜  ~ df -hT
Filesystem          Type      Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs               tmpfs      16G   84K   16G   1% /dev/shm
tmpfs               tmpfs     6.1G   11M  6.1G   1% /run
efivarfs            efivarfs  128K   36K   88K  30% /sys/firmware/efi/efivars
/dev/mapper/rl-root xfs        70G   49G   22G  69% /
/dev/mapper/rl-home xfs       845G   76G  769G   9% /home
/dev/nvme0n1p2      xfs       960M  896M   65M  94% /boot
/dev/nvme0n1p1      vfat      599M   37M  563M   7% /boot/efi
/dev/sda1           fuseblk   1.9T  1.8T   38G  98% /hdd7
tmpfs               tmpfs     3.1G  200K  3.1G   1% /run/user/1000

nvme0n1p3 分区是一个 pv:

AMD-ZQW-srv ➜  ~ sudo pvs
  PV             VG Fmt  Attr PSize   PFree
  /dev/nvme0n1p3 rl lvm2 a--  929.92g    0

/dev/nvme0n1p3 pv 中的三个 lv 组成一个名为 rl (Rocky Linux) 的 vg:

AMD-ZQW-srv ➜  ~ sudo vgs
  VG #PV #LV #SN Attr   VSize   VFree
  rl   1   3   0 wz--n- 929.92g    0

查看所有的 lv,3 个 lv 分别为 home root swap ,全都属于 vg rl

AMD-ZQW-srv ➜  ~ sudo lvs
  LV   VG Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home rl -wi-ao---- <844.63g
  root rl -wi-ao----   70.00g
  swap rl -wi-ao----   15.29g

DNF 和 rpm

Rocky Linux 使用 dnfrpm 管理软件包。

功能 命令
查找软件包 dnf search <关键词>
安装软件包 dnf install <软件包名>
删除软件包 dnf remove <软件包名>
更新所有包 dnf upgrade
查看包信息 dnf info <软件包名>
清理缓存 dnf clean all
显示所有可更新包 dnf check-update
启用/禁用源 dnf config-manager --set-enabled <repo>
查看软件源 dnf repolist
工具 作用
rpm 管理单个 .rpm 包(安装、查询、卸载等)
dnf 依赖于 rpm,自动处理依赖,连接仓库

zsh

硬盘挂载

journalctl 查看日志

Podman(Docker)

开放端口

sudo semanage port -a -t http_port_t -r 's0' -p tcp xxxx

允许访问目录,以及递归的子目录

sudo semanage fcontext -a -f a -t container_file_t -r 's0' '/home/zqw/(/.*)?'

SELinux

查看 SELinux 状态: getenforce

关闭: setenforce 0

开启: setenforce 1

Firewall

Systemctl

初始化与用户、权限管理

出于安全考虑修改 ssh 的默认端口。

引导

致谢

所有为 ChatGPT 提供训练素材的人。