🎄使用指北-007-redhat

type
status
date
slug
summary
tags
category
icon
password
notion image

1. 安装部分

1.1. 安装出现 “/dev/root does not exist”

安装出现 Warning: /dev/root does not exist, could not boot
系统无法识别你的 U 盘,开机 grub 选项按 e 编辑:
方法 A. 修改 U 盘标签为 XXX(不是磁盘名),最好不要带空格:
stage2=hd:LABEL=... quiet 改为:vmlinuz initrd=initrd.img inst.stage2=hd:XXX quiet
方法 B. 修改为 U 盘的具体分区,比如 U 盘此时是 /dev/sdb1:
某些机器 U 盘与硬盘挂载的先后顺序是不一样的,有可能是 sda1
stage2=hd:LABEL=... quiet 改为:vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb1 quiet

1.2. 如何重置 root 账户密码

步骤 A. 开机在 grub 界面,按 e 编辑启动项,在 initrd 上面那一行最后加入 rd.break,按 ctrl + x 继续启动;
步骤 B. 开机启动后,依次输入如下命令:

1.3. 开机之后出现 grub> 界面,引导出错的问题

  • 步骤 A: 罗列所有的磁盘区块
# grub>ls
  • 步骤 B: 确定 boot 分区
如果 boot 为独立分区 ls (hdX, Y)/grub
否则 ls (hdX, Y)/boot/grub
这里的 X, Y 是磁盘区块索引,比如 (hd0, sda2)
  • 步骤 C: 将 boot 设置为临时分区
# grub>set root=hd0,sda2
  • 步骤 D: 设置启动参数(可以使用 Tab 补全)
如果是 BIOS-based 机器 => linux16 /vmlinuz-3.10.0-67.el7.x86_64 root=/dev/mapper/rhel-root
如果是 EFI-based 机器 => linuxefi /vmlinuz-3.10.0-67.el7.x86_64 root=/dev/mapper/rhel-root
  • 步骤 E: 设置内核参数(可以使用 Tab 补全)
如果是 BIOS-based 机器 => initrd16 /initramfs-xxx.el7.x86_64.img
如果是 EFI-based 机器 => initrdefi /initramfs-xxx.el8.x86_64.img
  • 步骤 F: 启动系统
# grub>boot
  • 步骤 G: 重启系统之后,重新生成 grub 配置文件
如果是 BIOS-based 机器 => # grub2-mkconfig -o /boot/grub2/grub.cfg
如果是 EFI-based 机器 => # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

2. 试用部分

2.1. 修改默认源为阿里云源

  • 步骤 A: 替换新的包
在网址 https://mirrors.aliyun.com/centos/7/os/x86_64/Packages 内下载一下包并安装:
yum-metadata-parser, yum, yum-plugin-fastestmirror, yum-utils, python-urlgrabber
  • 步骤 B:删除自带的 yum 软件;
rpm -qa | grep yum
rpm -qa | grep yum | xargs rpm -e –nodeps
  • 步骤 C: 修改 repo 文件:
首先备份自带的 repo 文件,然后下载阿里云提供的 repo 文件,再替换成当前版本
执行替换命令 :%s/$releasever/7/g
  • 步骤 D: 生成缓存

2.2. 安装 epel 源

  • 步骤 A: 安装 epel 源
  • 步骤 B: 备份自带的 epel 源
  • 步骤 C: 下载新的 epel 源

2.3. 如何开放一个端口?

从 RHEL 7 之后,启用了新的管理工具 firewall-cmd 和 systemd 管理机制

2.4. 使用 rpmbuild 构建软件

  • 步骤 A: 必要工具的安装
可能还需要安装 epel-rpm-macros
源码包与 Debian 一样,容易随着版本的更新消失,需要使用 Google 寻找那些网络上的备份。
  • 步骤 B: 创建 rpm 的工作目录
============================
BUILD :编译 rpm 包的目录
BUILDROOT :编译后生成的临时安装目录
RPMS :最终生成的可安装 rpm 包的所在目录
SOURCES :所有源代码和补丁文件的存放目录
SPECS :存放 SPEC 文件的目录(重要)
SRPMS :软件最终的 rpm 源码格式存放路径
============================
以上目录需要手动创建:
下载源码包 .src.rpm:
  • 步骤 C: 编译源码包
rpm 包包括文件的归档和卸载归档中的文件的元数据,软件包分为二进制包和源代码包,构建必须选择以下五种模式之一:
(1)从 spec 文件构建
(2)从 Tar 构建
(3)重新构建
(4)重新编译
(5)显示配置
详细内容可以参考金步国翻译的《rpm 中文手册》。
例子:从 sepc 文件构建

2.5. 支持 exFat 格式的磁盘格式

方法 A. 安装 Nux Desktop 源或者 rpmfusion 源,再安装包 exfat-utils、fuse-exfat
方法 B. 从 pkgs.org 中直接下载安装 exfat-utils、fuse-exfat

2.6. 开机自动联网

A. 使用 ifconfig 命令查看当前使用的网卡, 比如是 enpls0
B. 进入目录 /etc/sysconfig/network-scripts/
C. 编辑 ifcfg-enpls0,找到 ONBOOT=no, 改为 yes
D. 如果不是使用 DHCP 自动寻找网络,可以设置静态网络,文件最后添加如下内容
E. 重启网络服务

3. 参考文档

  • 金步国《rpmbuild 中文手册》 http://www.jinbuguo.com/pkgmanager/redhat/rpmbuild.html
  • Github《RPM Packaging Guide》https://rpm-packaging-guide.github.io/
中年码农的困境log-001-我与计算机