Debian系Linux调整分区后导致的启动变慢

本文分析了Linux系统启动过程中的卡顿现象,通过检查dmesg日志发现系统在挂载分区时出现延迟,进一步排查发现是由于swap分区配置不当所致。文中详细介绍了如何通过修改initramfs配置和更新swap分区UUID来解决问题。

查看启动信息

dmesg -T > boot.txt
692 [日 11月 25 20:18:39 2018] usb 1-7: New USB device found, idVendor=8087, idProduct=0a2a, bcdDevice= 0.01
693 [日 11月 25 20:18:39 2018] usb 1-7: New USB device strings: Mfr=0, Product=0, SerialNumber=0
694 [日 11月 25 20:19:09 2018] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null)
695 [日 11月 25 20:19:09 2018] systemd[1]: RTC configured in localtime, applying delta of 480 minutes to system time.

发现在693到694行之间(成功挂载系统分区)用了30秒,导致的启动卡顿。

查看分区的uuid

方法1. lsblk -f  #可以查看分区的类型,如swap  
方法2. ls -l /dev/disk/by-uuid/  #只能查看分区id  

修改为新的swap分区的uuid

vim /etc/initramfs-tools/conf.d/resume  

更新初始化虚拟磁盘

update-initramfs -u  

问题原因

摘自知乎[Norlan的专栏](https://zhuanlan.zhihu.com/p/36474776)

linux系统启动时,需要一个挂载kernel的目录,这个目录的配置信息就是由initramfs-tools来提供的,不过这个目录并不存在于硬盘上,而是直接存在于内存中。所以引导程序会先读取initramfs-tools的配置信息,以获取这个文件或分区的信息,但是我的系统中相应的信息没有修改,导致引导程序还按照以前的信息去加载

来自对update-initramfs命令man文档的意译

update-initramfs脚本管理本地机器上的initramfs映像,它可以操作/boot中现有的initramfs存档。它有创建,更新或删除有三种操作模式。您必须至少指定其中一种模式。initramfs是一个gzip压缩包,在引导时,内核将该存档解压缩到RAM磁盘中,安装并将其用作初始的根文件系统。之后挂载真正的根分区需要的所有操作都发生在这个早期的用户空间中。

摘自优快云[/boot目录介绍](https://blog.youkuaiyun.com/dulin201004/article/details/7396968)

initrd的全名是initial ram disk,就是启动系统所需加载的虚拟磁盘。在系统启动过程中,kernel、initrd和system module是依次加载的。initrd包含一部分内核模块,主要是一些关键的外部硬件,如SATA、SCSI和USB等外设。它如果失败当然也会影响系统启动。而system module这些系统中的模块,是与支持和启动无很大关系的硬件有关,如果没有这些硬件设备的支持,系统也可以启动完成,只是存在功能上的缺失,如声卡、网卡、显卡等。这些系统模块也可以在启动后,以modprobe的方式载入模块使用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值