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

[Linux] Linux交换空间管理 Linux系统启动原理

目录

Linux交换空间管理

计算机存储器的存储结构

计算机存储器的工作原理

Swap空间

创建交换空间

激活swap空间

取消激活swap空间

持久化激活swap空间

Linux系统启动原理

rucky8启动过程

系统target

系统启动级别

重置root密码

rd.break

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

环境准备

故障1:挂载点不存在

环境准备

重启系统验证

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

环境准备

故障3:破坏文件系统

环境准备

重启系统验证

grub2配置

grub2菜单超时时间

kernel启动参数

grub2菜单加密

解密

*若超时时间为0,也没有root密码,也不显示启动过程,如何解密

故障1:grub引导程序故障

环境准备


Linux交换空间管理

计算机存储器的存储结构

  • CPU寄存器:用来暂时存放参与运算的数据和运算结果以及一些CPU运行需要的信息

  • CPU高速缓存,是一种容量小、速度快的高缓冲存储器,由SRAM组成,速度几乎与CPU一样快。

  • 主存储器,用来存放指令和数据,并能由CPU直接随机存取。速度比CPU高速缓存慢,但存储容器却大得多。

  • 主存储器的带宽计算公式:带宽=频率*位宽/8。

  • 辅助存储器,容量大,可持久化存储

计算机存储器的工作原理

Swap空间

功能1:当内存使用量超过定义的限制时,内核寻找已分配给进程但空闲的内存页,将该空闲的内存页写入到叫化浓煎,并向其它进程重新分配RAM页面。

功能2:如果某个程序需要访问磁盘上的页面,则内核会找到另一个空闲的内存页,将其写入磁盘,然后从交换区重新调用所需的页面。

功能3:如果某个程序需要访问数据,访问的数据存放在交换空间,则该程序直接从交换空间读取数据,而不需要从磁盘原始位置读取,进而提高速度。

创建交换空间

#使用parted创建所需大小的分区并将其文件系统类型设置为linux-swap
parted /dev/sdb mklabel gpt
parted /dev/sdb unit MiB mkpart data01 linux-swap 1 2049
parted /dev/sdb1 unit Mib print
#格式化swap空间
mkswap /dev/sdb1

激活swap空间

#激活swap空间
swapon /dev/sdb1
#查看
swapon -s

取消激活swap空间

swapoff /dev/sdb1
swapon -s

持久化激活swap空间

修改/etc/fstab文件

UUID=2bf4e179-3648-4412-9495-3b278df4acd6 none swap default 0 0

使用命令swapon -a激活/etc/fstab中所有交换设备。

使用命令swapoff -a取消/etc/fstab中所有交换设备激活。

Linux系统启动原理

rucky8启动过程

系统target

  • systemd使用类型为target的单元来分组不同单元,例如multi-user.target包涵chronyd.service、crond.service、firewalld.service等服务。

  • target还可以包涵其他target,例如graphical.target包涵multi-user.target,multi-user.target包涵basic.target,basic.target包涵sysinit.target。

#查看target之间依赖关系
systemctl list-dependencies graphical.target

#查看反向依赖
systemctl list-dependencies sshd.service --reverse

系统启动级别

重置root密码

rd.break

  • 重新启动系统

  • 按任意键(Enter除外)中断启动加载器倒计时

  • 选择要启动的内核(一般是第一个)

  • 定位到linux行,在最后添加rd.break

  • ctrl + x使用这些更改进行启动

  • 此时,系统会显示rootshell,且磁盘上的实际根文件系统以只读方式挂载在/sysroot。

  • 以读/写形式重新挂载/sysroot。

mount -o remount,rw /sysroot
  • 切换root位置,把/sysroot作为文件系统树的根
chroot /sysroot
  • 设置新密码
echo password | passwd --stdin root

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

环境准备
#设置磁盘分区管理方案
[15:48:52 root@rocky8-znf ~]# parted /dev/sda mklabel msdos
信息: You may need to update /etc/fstab.
#创建分区
[15:50:02 root@rocky8-znf ~]# parted /dev/sda unit MiB mkpart primary 1 10241
信息: You may need to update /etc/fstab.
#格式化
[15:52:40 root@rocky8-znf ~]# mkfs.xfs -f /dev/sda1
meta-data=/dev/sda1              isize=512    agcount=4, agsize=655360 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=1, sparse=1, rmapbt=0=                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
#创建挂载点
[15:51:18 root@rocky8-znf ~]# mkdir /data09
#设置持久化挂载
[15:51:31 root@rocky8-znf ~]# echo '/dev/sda1 /data09 xfs defaults 0 0' >> /etc/fstab
[15:52:07 root@rocky8-znf ~]# systemctl daemon-reload
#挂载并验证
[15:53:51 root@rocky8-znf ~]# mount -a
[15:53:55 root@rocky8-znf ~]# df -h /data09
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda1        10G  104M  9.9G    2% /data09

故障1:挂载点不存在

环境准备
[15:54:05 root@rocky8-znf ~]# umount /data09
[15:57:54 root@rocky8-znf ~]# rmdir /data09
重启系统验证
[15:58:01 root@rocky8-znf ~]# reboot#可以正常进入系统,挂载点会被自动创建
[15:58:55 root@rocky8-znf ~]# df -h /data09

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

环境准备
vim /etc/fstab
#将sda1改为sda2

重启系统验证

  • 启动过程中找不到该设备。

  • 1分30秒超时后,进入emergency模式,进行修复。修改为正确的值或者注释该条目,确保系统正常启动。

  • 然后输入exit,继续启动。

故障3:破坏文件系统

环境准备
dd if=/dev/zero of=/dev/sda1 bs=1M count=1
重启系统验证
  • 系统启动过程中尝试修复文件系统,修复失败后提示进入emergency模式修复。

  • 进入emergency模式修复。

修复完成后输入exit即可正常启动系统

grub2配置

grub2菜单超时时间

vim /etc/default/grub
#修改GRUB_TIMEOUT=0#生效grub2.cfg配置文件
grub2-mkconfig -o /etc/grub2.cfg

kernel启动参数

vim /etc/default/grub
#修改GRUB_CMDLINE_LINUX,例如在最后添加参数console=ttySO,导致不显示启动过程

grub2菜单加密

#查看/etc/grub.d/01_users脚本
cat /etc/grub.d/01_users
#生成grub2密码
grub2-mkpasswd-pbkdf2Enter password:
Reenter password: 
PBKDF2 hash of your password is
grub.pbkdf2.sha512.10000.649DDB2FE50D7D3A0DF829A21887FFD9FB7CC14F0E750B
993CFB08B86D0E99AE33D7E121DEC82DD71FF69B2653D9446ED777ADAFB5DAE051685C7
B85C3A3A276.8DC92452B738F2007F7254BC884AF34B3C149E62D2054BB09DA970B931A
F329BE772648AA0FE15DC8196AED48545F5BF84AAF9EB989CCCD168604B8050988FF0#创建文件
vim /boot/grub2/user.cfg
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.649DDB2FE50D7D3A0DF829A21887FFD9FB7CC14F0E750B
993CFB08B86D0E99AE33D7E121DEC82DD71FF69B2653D9446ED777ADAFB5DAE051685C7
B85C3A3A276.8DC92452B738F2007F7254BC884AF34B3C149E62D2054BB09DA970B931A
F329BE772648AA0FE15DC8196AED48545F5BF84AAF9EB989CCCD168604B8050988FF0#更新GRUB配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
#重启
reboot

启动菜单界面,按e编辑显示如下界面

解密

删除文件

rm -f /boot/grub2/user.cfg

重启

*若超时时间为0,也没有root密码,也不显示启动过程,如何解密

机器启动时改为使用光盘启动

选择Troubleshooting

选择这个

选择1,让它找到系统

回车,进入/mnt/sysroot

chroot /mnt/sysroot

查看根(root)是否为读写挂载(rw)

mount

是读写挂载就可以直接找到之前的密码文件,搞掉它就行

cd /boot/grub2/
ls
mv user.cfg user.cfg.aaa

或者进入grub2.cfg将密码相关代码注释掉,并修改超时时间

vim /etc/grub2.cfg
#输入/user 找到相关代码

保存退出,输入两次exit退出界面。

恢复正常

故障1:grub引导程序故障

环境准备
dd if=/dev/zero of=/dev/sda bs=1 count=446

解决过程:

开机时按esc,选择使用光盘启动

选择Troubleshooting

选择这个

按1,回车,之后确认系统启动分区所在磁盘

安装引导程序,输入exit两次重启系统:第一次exit,退出chroot环境;第二次exit,退出系统。

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

相关文章:

  • 慧穗云开放平台 CDK 开票对接
  • echart中x的0位置出现柱子宽度被裁掉一部分的问题
  • 技术日记2025年08月16日
  • 基于FPGA的实时图像处理系统(1)——SDRAM回环测试
  • python---异常处理
  • Redis知识整理
  • 【论文笔记】STORYWRITER: A Multi-Agent Framework for Long Story Generation
  • 云服务平台主流架构的相关知识体系剖析
  • ABM和强化学习-2015年全国大学生数学建模竞赛B题
  • 安卓11 12系统修改定制化_____修改系统 解锁system分区 去除data加密 自由删减系统应用
  • JetPack系列教程(七):Palette——让你的APP色彩“飞”起来!
  • sql链接的url中serverTimezone的作用
  • 【大模型微调系列-04】 神经网络基础与小项目实战
  • windows环境下使用vscode以及相关插件搭建c/c++的编译,调试环境
  • GIMP:功能强大的跨平台图像处理软件
  • 嵌入式硬件篇---电容本质
  • leetcodehot100 矩阵置零
  • Jenkins安装部署(Win11)和常见配置镜像加速
  • B3837 [GESP202303 二级] 画三角形
  • csrf攻击
  • 11、软件需求工程
  • AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
  • 智能二维码刷卡人脸识别梯控控制器硬件规格书​
  • 【C++】高效资源管理四剑客:RVO、NRVO、std::move、RAII 深度解析
  • 【3D重建技术】如何基于遥感图像和DEM等数据进行城市级高精度三维重建?
  • 【Vibe Coding 工程之 StockAnalyzerPro 记录】- EP3.Phase 2股票列表管理功能
  • Font shape `TU/ptm/m/n‘ undefined(Font) using `TU/lmr/m/n‘ instead
  • UE5多人MOBA+GAS 45、制作冲刺技能
  • Business Magic
  • [创业之路-550]:公司半年度经营分析会 - 解决方案汇总