用blkid命令解读grub.cfg文件中的块设备

本文解析了Ubuntu系统中GRUB配置文件grub.cfg的变化,特别是如何使用UUID来标识磁盘分区,介绍了如何通过命令blkid查找指定UUID对应的磁盘分区,以及如何通过该命令获取磁盘分区的UUID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    ubuntu引导配置文件grub.cfg真是越来越难看懂了:启动菜单里找不到类似root=/dev/sda这种存放根文件系统的块设备名,取而代之的是一堆让人摸不着头脑的UUID:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-79b9d565-3541-424b-9772-66551edc4e22' {
	linux	/boot/vmlinuz-3.13.0-32-generic root=UUID=79b9d565-3541-424b-9772-66551edc4e22 ro find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US quiet
	initrd	/boot/initrd.img-3.13.0-32-generic
    上网搜索了一下,找到了通过UUID反向找到对应块设备的命令,以上面root=UUID=79b9d565-3541-424b-9772-66551edc4e22为例:

eugen@ubuntu:~$ sudo blkid -U 79b9d565-3541-424b-9772-66551edc4e22
/dev/sda1
    原来这串UUID是/dev/sda1的设备号。

    反过来,这个命令也可以查看块设备的UUID/Label

eugen@ubuntu:~$ sudo blkid /dev/sda1
/dev/sda1: UUID="79b9d565-3541-424b-9772-66551edc4e22" TYPE="ext4" 
eugen@ubuntu:~$ sudo blkid 
/dev/sda1: UUID="79b9d565-3541-424b-9772-66551edc4e22" TYPE="ext4" 
/dev/sda5: UUID="3d9f9416-f8c7-4b88-a7c5-77f023560756" TYPE="swap" 

参考: Persistent block device naming

<think>好的,我现在需要帮助用户解决关于/etc/fstab.empty文件内容为空的问题。根据用户提供的引用内容,我需要先理解这个问题的背景和可能的解决方案。 首先,用户提到系统进入troubleshooting模式,发现fstab文件显示为fstab.empty,并且内容为空,导致分区信息丢失。引用[1]和[5]都提到了这种情况,尤其是在突然断电或误操作后可能出现。引用[2]和[3]指出,如果/etc/fstab被删除或清空,系统可能无法正常启动,这时候需要紧急处理。 接下来,我需要考虑如何处理这种情况。根据引用[3],如果系统还未关机,可以尝试手动重建fstab,但用户的情况可能已经关机或无法启动。引用[4]和[5]提到需要进入救援模式,挂载分区并修复fstab文件。因此,步骤可能包括:进入救援模式,挂载根分区,使用备份或手动重建fstab,检查UUID是否正确,然后重启系统。 还需要注意,在救援模式下可能需要重新生成grub.cfg,如引用[4]所述,但用户的问题集中在fstab上,所以重点应放在恢复fstab。同时,引用[5]提到fdisk命令不可用,可能需要安装相关工具,但救援模式通常自带这些工具。 用户可能遇到的难点是如何正确挂载根分区和获取正确的UUID。需要指导用户使用blkid命令获取UUID,并正确填写挂载点。此外,确保用户备份现有的空fstab.empty文件,避免覆盖重要信息,尽管内容为空,但可能有其他问题。 最后,总结步骤时,要分情况处理:系统未关机和已关机的情况。同时,生成相关问题,帮助用户进一步了解如何预防和应对类似问题。</think>### 如何处理空的`/etc/fstab.empty`文件? #### 问题分析 `/etc/fstab`文件Linux系统中用于定义磁盘分区挂载信息的关键配置文件。若该文件被清空或替换为空的`fstab.empty`(如误操作或系统故障),会导致系统启动时无法挂载分区,进而引发启动失败或功能异常[^1][^5]。 --- #### 解决方案(分情况处理) ##### **情况1:系统仍可进入临时Shell(未完全关机)** 1. **手动挂载根分区** 如果系统未完全崩溃,可尝试临时挂载根分区以修复文件: ```bash mount -o remount,rw / # 重新挂载根分区为可写模式 cp /etc/fstab.empty /etc/fstab # 备份空文件(防止覆盖) ``` 2. **重建`/etc/fstab`内容** 根据现有分区信息填写正确的挂载配置(需提前记录或通过命令获取): ```bash blkid # 查看分区的UUID和文件系统类型 nano /etc/fstab # 按格式写入分区信息,例如: ``` 示例内容: ``` UUID=xxxx-xxxx /boot ext4 defaults 0 0 UUID=yyyy-yyyy / ext4 defaults 0 0 ``` ##### **情况2:系统已无法启动(需救援模式)** 1. **使用Live CD/USB进入救援模式** 通过安装介质启动,选择“Troubleshooting” → “Rescue a CentOS system”。 2. **挂载原系统根分区** ```bash chroot /mnt/sysimage # 切换到原系统环境 mount -o remount,rw / # 确保根分区可写 ``` 3. **恢复或重建`/etc/fstab`** - 如果有备份(如`/etc/fstab.bak`): ```bash cp /etc/fstab.bak /etc/fstab ``` - 若无备份,需手动编写(参考`blkid`输出的分区信息)。 4. **验证并重启** ```bash mount -a # 测试fstab配置是否有效 exit reboot ``` --- #### 关键注意事项 1. **UUID的重要性** 现代Linux系统使用UUID标识分区,直接使用设备名(如`/dev/sda1`)可能导致配置错误[^4]。 2. **备份习惯** 定期备份`/etc/fstab`,例如: ```bash cp /etc/fstab /etc/fstab.backup ``` 3. **紧急修复工具** 可提前准备系统修复工具(如`systemrescuecd`)以应对类似问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值