b2b电商系统搭建的关键步骤与最佳实践解析,助力企业数字化转型
947
2022-05-28
目录
文章目录
目录
系统启动流程
编辑 gurb.cfg
RHEL7 的启动级别
RHEL7 破密码步骤
grup2 加密,防止破密码
initramfs 文件
系统启动流程
RHEL7 使用了 GRUB2 引导程序。
开启电源。
加载主板 BIOS
检测硬件是否有故障 。
找启动介质,进入磁盘的 MBR 引导分区分区。MBR 大小为 512Byte,由 Bootloader(446B)+ 分区表(64B)+ 校验结束位(2B)组成。一个分区的标识数据占用 16B。
linux 内核文件保存在 /boot 目录下,通过 GRUB2 程序将内核加载到内存。可以通过修改 grub.cfg,来控制系统启动选项。GRUB2 的本质是一个微型的操作系统,他可以识别到一些常用的文件系统,GRUB 2运行时会读取自己的配置文件 /boot/grub2/grub.cfg。每个内核条目都会以 menuentry 开头 ,menuentry 包含标题、选项(不建议修改),menuentry 后面有一对大括号,其中都是启动项,启动项以 TAB 开头 ,linux16 这行指定内核的位置、根分区的位置、以只读方式挂载根分区 、字符集、键盘布局、语言、rhgb(以图形化方式显示启动过程)、quiet(启动过程出现错误提示)。根分区都是 xfs 格式的,xfs 需要驱动才能读取文件,驱动的位置在 /lib/modules/3.10.0-123.el7.x86_64/kernel/fs/xfs,通过 initrd16 将启动相关的驱动和模块解压到内存,再读取根分区(xfs)的数据。
注意:RHEL7 的 grub.cfg 不能直接修改,要通过修改 /etc/default/grub 来间接编辑 grub.cfg。
编辑 gurb.cfg
修改配置文件 /etc/default/grub,修改后用 grub2-mkconfig 指令成 grub2.cfg。在 grub2-mkconfig 生成配置文件时需要加载 /etc/grub.d 目录,此目录下有下列文件:
00_header:设置 grub 的默认参数。
30_os_prober:设置其他分区中的系统(硬盘中有多个操作系统时设置)。
40_custom、41_custom:用户自己自定义的配置。
10_linux:系统中存在多个 Linux 版本。
20_ppc_terminfo:设置 tty 控制台 。
/boot/grub2/grub.cfg 就是上面文件的组合体。
例如,设置指定内核启动:
# vim /etc/default/grub grub2-set-default saved|number
1
2
RHEL7 的启动级别
临时修改:
进入系统后修改:systemctl isolate TAB
未进入系统前修改:按 e,到 linux16 行尾,加入systemd.unit=xxxx.target。
永久修改:systemctl set-default TAB。
TAB 类型和其特性:
emergency.target:sulogin 提示,grub 启动完成,同时系统的 root 把/只读挂载。救援模式(只挂载/而且只读,不加载 /etc/fstab)。在文件系统出了故障时使用。
graphical.target:支持多用户,图形化和文本登录。
multi-user.target:支持多用户,文本登录。
rescue.target:sulogin(单用户模式)提示,基本的系统初始化完成,单用户模式需要口令,要输入密码。和多用户区别在于不启动任何服务,加载了文件系统,适用于某服务设置故障,进入此模式修补。
RHEL7 破密码步骤
rd.break破解:
开启电脑 systemctl reboot。
在 Grub 选项上按 e 键,进入编辑模式。
在 vmlinuz 行后加入 rd.break console=tty0(单用户模式)。
ctrl+z 保存重启。
mount -o remount,rw /sysroot 挂载系统临时根目录为可写。
chroot /sysroot 改变系统目录为临时挂载目录。
echo fanguiju | passwd --stdin root 修改密码。
touch /.autorelabel
exit
exit
注意:若在 VMware 虚拟机上操作不成功,可以尝试将 rhgb quiet(图形化启动)先删除。
rd.break 一般用于修改 passwd 或者出现重大问题,临时中断运行,未加载 FileSystem,比但用户模式还要精简。若这样 rd.break 不能进入,则向 kernel 传递 init=/bin.bash 或 init=/bin/sh 参数,使用 init 的方法来破解。
init破解:
开启电脑 systemctl reboot。
在 Grub 选项上按 e 键,进入编辑模式。
在 kernel(linux16/linux/linuxefi)行尾添加 init=/bin/sh。
Ctrl+x 启动 Shell。
挂载文件系统为可写模式 mount –o remount,rw / 直接挂载根目录。
passwd root 修改 root 密码。
exec /sbin/init 启动,或者用指令 exec /sbin/reboot 重启。
NOTE:如过系统启动了 selinux,必须运行以下命令,否则将无法正常启动系统:touch /.autorelabel。
grup2 加密,防止破密码
获取加密密码:
grub2-mkpasswd-pbkdf2 # 输入密码
1
编辑 00_header 文件:此文件配置初始的显示项目,如默认选项,时间限制等,加入密码验证项目,在最后一行添加:
# vim /etc/grub.d/00_header cat << EOF set superusers="jmilk" password jmilk grub.pbkdf2.shaxxxxxxxxxxxxxxx #加密密码 EOF
1
2
3
4
5
6
更新 grub 配置后并重启:
grub2-mkconfig -o /boot/grub2/grub.cfg systemctl reboot
1
2
initramfs 文件
存放 kernel 可以 rw fs 的驱动,当 kernel 加载到内存后要以 ro 的方式加载根分区(xfs),但是因为系统驱动存放在根分区中。所以额外将让 kernel 可以读取根分区的驱动全放入到 initranfs 中,在 Kernel 还没有读取根分区时,initramfs 文件将所有的驱动解压到内存中供 kerne l使用。
Linux
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。