欢迎光临 www.huangdc.com

linux下如何进入单用户维护模式和/bin/bash模式

Linux huangdc 1452℃ 0评论

有点意思,记录一次linux下进入单用户维护模式和/bin/bash模式

一、单用户维护模式

1、重启系统,启动时按下任意键进入启动菜单,按下任意键,进入GRUB菜单(如图)

qq%e5%9b%be%e7%89%8720160913210601

2、在 GRUB 启动菜单里有“a”、“e”和“c”三个操作按键

 ‘e’ 在booting前编辑启动命令行
‘a’ 在booting前编辑kernel的参数
‘c’进入grub命令行

按 “e” 键,选择 “kernel” 菜单项,再按“e”键编辑“kernel” 菜单项,在行末输入 single ,以告诉 Linux 内核后续的启动过程需要进入单用户模式(如图)

qq%e5%9b%be%e7%89%8720160913210802

qq%e5%9b%be%e7%89%8720160913211446

qq%e5%9b%be%e7%89%8720160913211730

3、在行末输入 single 之后,按enter键确认,并回到GRUB 启动菜单(默认已经选中 “kernel” 行),按下“b”键以单用户重启系统

qq%e5%9b%be%e7%89%8720160913212115

4、好了,系统无需输入密码就进入了,系统已经是单用户模式了,想干啥就干啥吧(最常用当然是:修改root用户密码)

qq%e5%9b%be%e7%89%8720160913212348

二、linux直接进入/bin/bash模式

先来模拟一种问题,先来看看我的一台虚拟机的内存和虚拟内存参数min_free_kbytes的值(如图)

qq%e5%9b%be%e7%89%8720160913214618min_free_kbytes  保证系统间可用的最小 KB 数。这个值可用来计算每个低内存区的水印值,然后为其大小按比例分配保留的可用页。可破坏您系统的极限值

设定这个参数时请小心,因为该值过低和过高都有问题。
min_free_kbytes 太低可防止系统重新利用内存。这可导致系统挂起并让 OOM 杀死多个进程。
但将这个参数值设定太高(占系统总内存的 5-10%)会让您的系统很快会内存不足。Linux 的设计是使用所有可用 RAM 缓存文件系统数据。设定高 min_free_kbytes 值的结果是在该系统中花费太多时间重新利用内存。
好,我们将这个值改大试试,看看会发生什么情况;修改 /etc/sysctl.conf , 添加一行

执行 sysctl -p 生效

qq%e5%9b%be%e7%89%8720160913214618

好了,最后来重启一下 ,init 6 , 可以看到下面的错误(如果)

qq%e5%9b%be%e7%89%8720160913215501

杯具了,参数改错了,导致系统无法重启(是不是很紧张)哈哈

别慌,不是说可以用linux单用户模式登录修改回来嘛,那我们就试试linux进入单用户维护模式,也就是 (一、单用户模式)的步骤,安装上面的一步步来呗

重启 -> 按任何键进入grub菜单 -> 按‘e’ 在booting前编辑启动命令行 -> 选择“kernel” 菜单项行 按“e”,在行末输入 single -> 按确定 -> 按“b”键重启 ……. 看吧,出现什么错误(如下图)

qq%e5%9b%be%e7%89%8720160913220755

qq%e5%9b%be%e7%89%8720160913220805

qq%e5%9b%be%e7%89%8720160913220809

出问题了吧,改不了吧,那怎么办呢!

到 /bin/bash模式 出场了…. 还是跟进入单用户模式一样

重启系统 -> 按任何键进入grub菜单 -> 按‘e’ 在booting前编辑启动命令行 -> 选择“kernel” 菜单项行 按“e”编辑“kernel” 启动菜单,但是这里就不是在行末输入 single , 而是输入 init=/bin/bash (如下图)

qq%e5%9b%be%e7%89%8720160913221238

继续吧,-> 按确定 -> 按“b”键重启 …….进来了,变了吧,变成bash了,而不是root(如图)

qq%e5%9b%be%e7%89%8720160913221515

好了,写个文件试试

qq%e5%9b%be%e7%89%8720160913221621

咦,发现磁盘只读,那就改改吧 。输入mount -n / -o remount,rw 表示将根文件系统重新mount为可读写

qq%e5%9b%be%e7%89%8720160913221958

磁盘可以读写啦,赶紧修改 min_free_kbytes  的值,改回去吧 ,修改完,记得把系统读写改回去 mount -n / -o remount,ro

qq%e5%9b%be%e7%89%8720160913222327

最后,重启吧

qq%e5%9b%be%e7%89%8720160913222516

哎呀,正常登录了,说真的,截图截的我好累呀,记住 init=/bin/bash了吧(完)

 

 

 

转载请注明:Huangdc » linux下如何进入单用户维护模式和/bin/bash模式

喜欢 (5)or分享 (0)
发表我的评论
取消评论
表情