简单无痛解决Linux下修改/etc/fstab导致无法启动的问题

@怪盗kidou 原创文章,转载需在明显位置保留原文链接

Linux

基本情况:

我电脑上装了deepin+win10双系统,平时使用Deepin,偶尔手痒想玩两把跑跑卡丁车的时候就会切到Win10,所以为了两个系统共享方便,就分一个FAT32的分区,用EFI什么的也更方便一点,所以音乐文件也放在该分区下,前不久也重装了Deepin 15.1.1(吐槽一下:有点失望,桌面上的内容不显示),所以也就没有及时配置自动挂载,今天配置的时候直接搬了上面的ext4分区的参数,结果就起不来了。

不过这次文章所介绍的核心原理很简单:把/etc/fstab改正确就行了,系统都起不来怎么改?继续往下看。

方案一:有root账号的情况

有root账号这个比较好办,启动不了的话,直接就会让你输入root密码,登录成功后就进入字符模式,可以直接修改/etc/fstab,然后reboot即可。

挂载失败,让输入root密码

当然如果你的Linux没有这个提示也可以手动进入恢复模式(Recovery Mode)

一般Linux启动菜单最少有两个选项:一个正常启动,另一个是高级模式(Advance)。而高级模式中的包含了恢复模式(基本上是放在最后,毕竟很少使用),其它的菜单都是备份内核升级前的启动菜单。

例如我的启动菜单:

Deepin 15.1.1 GNU/Linux
Advanced options for Deepin 15.1.1 GNU/Linux
    |---- Deepin 15.1.1 GNU/Linux, with Linux 4.2.0-1-amd64
    |---- Deepin 15.1.1 GNU/Linux, with Linux 4.2.0-1-amd64 (recovery mode)
    |---- 假装是其它内核的选项
Windows Boot Manager
System setup

所以我们任选带有recovery mode字样的选项会出现这样的一个界面

恢复模式(Recovery Mode)

可以看到最上面提示filesystem state:read-only,即文件系统是只读的,不过这都不是问题,有了root账号,一切都是浮云。

选择 root,会提示输入root密码,登录后先输入

mount -o remount,rw /        # 将根文件系统重新挂载为读写状态

不然是无法修改文件的,如果没有任何提示信息的话用mount查看根目录的状态应该已经是读写状态

mount | grep " / "        # 查看根文件系统是否变
重新挂载为可写状态

这时就可以修改 /etc/fstab 文件啦。


方案二:没有root账号(今日采用)

我的情况就比较特殊,平时没有开root账号,都是用sudo,要切换到root账号时也是直接sudo su就行了,所以启动时和恢复模式也提示root账号已被锁,所以方案一行不通。本方案的主要内容就是:如何弄出一个root账号

我们知道linux将账号密码都存在/etc/passwd/etc/shadow中,所以只要不让kernel挂载我们根文件系统就OK了。

1、重启计算机,在Grub启动菜单上按“E”进入编辑模式。
2、定位到 linux 开头的行(grub 1.x为kernel开头),如:

linux /boot/vmlinuz-4.2.0-1-amd64 root=UUID=57c612a5-984b-4b14-bd1d-6c91f528cf9e ro  splash quiet

3、删除其余的参数,主要是root参数,如下:

linux /boot/vmlinuz-4.2.0-1-amd64

4、按F10ctrl+x启动修改后的菜单。

注:这里的编辑模式不会修改文件,如果改错了按ESC返回,重新走第一步就行了。

当你出现下图时说明成功绕过系统提供的账号体系

ramfs启动图

此时输入命令id验证

ramfs成功使用上了root账号

需要注意的是此时kernel使用文件系统为内存模拟的磁盘,所以我们所作的任何操作不会影响我们真正的系统,要想修改我们原本系统中的文件必须挂载原系统的根目录到我们现在使用的系统下。

mkdir /tmp/root  # 创建一个目录用于挂载真正系统的根目录
mount /dev/sda3 /tmp/root # 挂载设备到我们创建的文件夹下,我系统的磁盘设备为sda3,sda1和sda2分别为ESP、MSR
vi /tmp/root/etc/fstab # 注意busybox没有提供vim,还有文件路径的变化,不在是/etc/fstab了

修改完保存后直接reboot就ok了。


方案二原理:
上面介绍方案二的时候第2步提到 “定位到 linux 开头的行”,其实在linux命令下面一般还有以initrd开头的一行,如:

linux /boot/vmlinuz root=/dev/sda3
initrd /boot/initrd.img

这里的vmlinuz就是Linux kernel内核,而initrd.img实际上是一个经过gzip或lzma压缩的cpio归档文件,initrd(initial RAM disk,初始化内存磁盘) 是最开始使用的根文件系统里面也有/etc,/bin,/usr,/dev等目录还包含了一些基本配置、驱动、命令等,等磁盘设备加载完后,再将指定的磁盘分区挂载为根文件系统,去执行该根文件系统下的初始化操作完成启动(不一定完全准确,大致流程应该是这样),不然你想想挂载要mount命今,而mount在/bin下,而这时候还 / 都还没有,如此循环。。

我认为的启动流程

由于没有加载我们真正的根文件系统,所以账号密码都没有,但我们可以手动挂载,并以达到修改fstab的目的,是不是有一种PE的感觉呢?只想你想当然也可以干点别的,就看你怎么发挥了,不要拿去干坏事哟。

该initrd.img是可以自定义的,网上有很多文章,以前做过一个,给root账号加上密码,用来放在U盘里,这样别人想使用你的 ramfs也是不行的,只不过系统提供的肯定是没有的。


本文完

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容