当前位置: 首页 > news >正文

Linux 系统启动原理2

/etc/fstab 引起的系统启动问题

环境准备

#这就像给新硬盘创建 "分区表",相当于给一本书设计目录结构#"msdos" 是传统的分区表格式,告诉系统如何管理这个硬盘的分区[root@server ~ 09:53:33]# parted /dev/sdb mklabel msdos信息: You may need to update /etc/fstab.​#在硬盘上划出一块 "土地" 作为主要分区#"unit MiB" 表示用兆字节做单位#"1 10241" 意思是从第 1MB 开始,到 10241MB 结束(大约 10GB)系统提示可能需要更新 fstab,就像提醒你 "记得把新房间信息登记到住址本上"[root@server ~ 09:55:49# parted /dev/sdb unit MiB mkpart primary 1 10241信息: You may need to update /etc/fstab.​#想在刚划分的分区上创建 xfs 文件系统(相当于给新房间铺地板)#但系统提示:这个分区已经有 swap 文件系统了(像发现房间里已经铺了地毯)#建议用 - f 参数强制覆盖(相当于 "确定要拆掉现有地毯换新地板吗?")[root@server ~ 09:55:57]# mkfs.xfs /dev/sdb1mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (swap).mkfs.xfs: Use the -f option to force overwrite.​#在系统里创建一个叫 /data01 的 "入口"(相当于给新房间装个门牌号)[root@server ~ 09:56:32]# mkdir /data01​#把这个新分区的信息写入系统配置文件(相当于在住址本上登记新房间信息)#这样系统启动时就知道该怎么找到并使用这个分区了[root@server ~ 09:57:08]# echo '/dev/sdb1 /data01 xfs defaults 0 0' >> /etc/fstab​#让系统按照 fstab 里的配置挂载所有分区(相当于 "按住址本信息找到所有房间并打开门")#第一次失败了,因为分区还是 swap 格式,和我们登记的 xfs 格式不匹配(地毯和地板不兼容)[root@server ~ 09:58:00]# mount -amount: 文件系统类型错误、选项错误、/dev/sdb1 上有坏超级块、缺少代码页或助手程序,或其他错误​#加 - f 参数强制把分区格式化成 xfs(终于下定决心拆掉地毯,铺上我们要的地板)[root@server ~ 10:01:22]# mkfs.xfs -f /dev/sdb1​#再次尝试挂载所有分区,这次系统提示 "/dev/sdb1 已经挂载或 /data01 忙"#其实是已经挂载成功了,只是提示信息有点迷惑人(相当于 "门已经打开了,你已经在房间里了")[root@server ~ 10:01:45]# mount -amount: /dev/sdb1 已经挂载或 /data01 忙​[root@server ~ 10:02:01]# df -h /data01文件系统        容量  已用  可用 已用% 挂载点/dev/sdb1        10G   33M   10G    1% /data01​

故障1:挂载点不存在

准备环境
[root@server ~ 10:02:11]# umount /data01[root@server ~ 10:11:36]# rmdir /data01
重启验证
#依然正常进入系统[root@server ~ 10:11:42]# reboot#挂载点自动创建[root@server ~ 10:14:13]# df -h /data01文件系统        容量  已用  可用 已用% 挂载点/dev/sdb1        10G   33M   10G    1% /data01

故障2:设备名称写错或者找不到设备

[root@server ~ 10:14:51]# vim /etc/fstab#进入vim修改/dev/sdb2 /data01 xfs defaults 0 0​#发现进入不了系统​#重启按e进入编辑,空格第二行utf-8 输入rd.break ​#switch_root:/# mount -o remount,rw /sysroot​#switch_root:vi /sysroot/etc/fstab 进入注释掉错误命令后可以进入系统,或者直接修改错误也可进入系统#退出保存exit

故障3:破坏文件系统

准备故障
[root@server ~ 10:35:05]# dd if=/dev/zero of=/dev/sdb1 bs=1M count=1记录了1+0 的读入记录了1+0 的写出1048576字节(1.0 MB)已复制,0.00152951 秒,686 MB/秒#重启发现进入不了系统[root@server ~ 10:42:53]# reboot
#看提示查找日志执行:journalctl -p err​#改英文看信息unset LANGmount /data01​#输入密码(123)进入命令行,执行备份恢复[root@server ~ 10:44:56]# xfs_repair /dev/sdb1​#退出保存exit

grub2 配置

grub 菜单超时时间

root@server ~ 10:59:59]# vim /etc/default/grub# 修改GRUB_TIMEOUT为15GRUB_TIMEOUT=15​# 生效grub2.cfg配置文件​# 重启  后有15秒倒计时[root@centos7 ~]# reboot

kernel 启动参数

[root@server ~ 11:19:16]# vim /etc/default/grub​#vim编辑设置重启不显示启动过程,启动进程显示到ttys0上,看不见GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet console=ttys0"​# 生成grub2.cfg配置文件,重启验证[root@server ~ 11:20:42]# grub2-mkconfig -o /etc/grub2.cfg​#重启不显示启动过程,开机黑色[root@server ~ 11:21:19]# reboot​

grub 菜单加密

# 查看/etc/grub.d/01_users脚本
[root@server ~ 11:36:25]# cat /etc/grub.d/01_users
#!/bin/sh -e
cat << EOF
if [ -f \${prefix}/user.cfg ]; thensource \${prefix}/user.cfgif [ -n "\${GRUB2_PASSWORD}" ]; thenset superusers="root"export superuserspassword_pbkdf2 root \${GRUB2_PASSWORD}fi
fi
EOF# 生成grub2密码
[root@server ~ 11:37:07]# grub2-mkpasswd-pbkdf2
输入口令:
Reenter password:
#复制is之后的字符段
grub.pbkdf2.sha512.10000.24B84F0390065EF3B1E98C5B611D57DEFB357B140F51A99CCBA9F99947B09F9DE463A4F41721193B470BFC26482F59A3E6A9286110BBC8C910AEA9F2314EC723.AB1DF877EEFE1FE0EC07B2E351DB70EE151B8B2CAE3D791804777DA2EB26EB0DA47FB9702E92F26669887D492BA7B240F857B08067053D6EE4FAB47A71CFA6F2#创建加密文件
[root@server ~ 11:37:42]# vim /boot/grub2/user.cfg
#vim写入
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.24B84F0390065EF3B1E98C5B611D57DEFB357B140F51A99CCBA9F99947B09F9DE463A4F41721193B470BFC26482F59A3E6A9286110BBC8C910AEA9F2314EC723.AB1DF877EEFE1FE0EC07B2E351DB70EE151B8B2CAE3D791804777DA2EB26EB0DA47FB9702E92F26669887D492BA7B240F857B08067053D6EE4FAB47A71CFA6F2# 生成grub2.cfg配置文件,重启验证
[root@server ~ 11:39:15]# reboot#重启,按e进入需要密码,不能像之前直接进入修改

http://www.dtcms.com/a/315592.html

相关文章:

  • 基于Hadoop的成都市二手房数据分析与房价预测系统的设计与实现
  • C++(线程)
  • 小米最新ASR音频大模型MiDashengLM
  • WPF 与 Winform :Windows 桌面开发该用谁?
  • linux查看kafka的消费组里是否有积压
  • 电路基础相关知识
  • 【宇树科技+智元机器人】人形机器人产业链核心标的
  • 云手机具有哪些用途?
  • 机器人权利:真实还是虚幻,机器人权利研究如何可能,道德权利与法律权利
  • 腾讯云CodeBuddy AI IDE+CloudBase AI ToolKit打造理财小助手网页
  • arp欺骗
  • GitHub Models:为开源AI项目解决推理难题,让AI更易用、更普及
  • 探索设计模式的宝库:Java-Design-Patterns
  • [验证回文串]
  • 家常菜点餐|基于java和小程序的家庭大厨家常菜点餐系统设计与实现(源码+数据库+文档)
  • 八股——WebSocket
  • 人工智能-python-Sklearn 数据加载与处理实战
  • 从零用java实现小红书springboot_vue_uniapp(15)评论和im添加图片
  • 【升级打怪实录】uniapp - android 静态声明权限和动态请求权限的区别
  • 【Linux】特效爆满的Vim的配置方法 and make/Makefile原理
  • uniapp基础(五)调试与错误
  • uniapp转app时,cover-view的坑
  • uniapp云打包打包安卓app失败,显示:本地安装包生成失败,请重试或者切换到非安心打包模式进行打包
  • uniapp Android App集成支付宝的扫码组件mPaaS
  • ubuntu-server安装
  • RabbitMQ面试精讲 Day 11:RabbitMQ集群架构与节点类型
  • 解决错误nvcc fatal : Unsupported gpu architecture ‘compute_86‘
  • 概率论角度: Laplace 算子和分数阶 Laplace 算子
  • BLE 安全连接:LE Secure Connections 与椭圆曲线密钥交换面试高频考点与真题解析
  • C++信息学奥赛一本通-第一部分-基础一-第2章-第1节