linux--切换ubuntu启动方式 及 还原配置

1 切换ubuntu启动方式

1.1 ubuntu 14

  • 方法一:(内核级别的)
Sudo vi /etc/default/grub
修改GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
为:GRUB_CMDLINE_LINUX_DEFAULT=” text”
然后 sudo update-grub2 就行
  • 方法二:(基于upstart的”正统”方法)
    ubuntu的upstart的体系下,/etc/init.d里面基本上都是连接到/lib/init/upstart-job的软连接,所以,对 initscripts的请求全部转化为upstart事件,upstart系统对启动项目的管理全部根据/etc/init里面的配置文件来启动,可以启动lightdm的事件就让人咂舌

编辑文件 /etc/init/lightdm.conf

start on ((filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger))
or runlevel PREVLEVEL=s)
stop on runlevel [016]

可见,一旦发生文件系统初始化,DBUS总线启动和发生graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1 or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 or stopped udevtrigger or runlevel PREVLEVEL=s这里面的任何一个事件,GDM就会被启动,只在运行级别在016的时候,GDM不启动。
所以,事件也就明了了、要在upstart层面干掉gdm,把上面的启动相关事件注释掉,改写下就行了

由于ubuntu 默认模式为2,所以:

start on (filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger)
and runlevel [345])
stop on runlevel [0126]

reboot

  • 方法三:阻止默认图形桌面启动

1、阻止默认图形桌面启动
ubuntu 12.04默认的开机会进入一个图形界面,他是由lightdm进程来实现的。 首先要做的,就是阻止这个lightdm的进程开机启动。 做法:
(1)、查看文件/etc/init/rc-sysinit.conf,在第14行附近:确认“env DEFAULT_RUNLEVEL=2”。2是新装系统默认的,确保不被修改。
(2)、编辑文件 /etc/init/lightdm.conf,在第12行附近,原句“ and runlevel [!06]” 改为“ and runlevel [!026]”。
解释:linux系统都有一个运行级别(runlevel)的概念,不同的运行级别配置将导致系统的启动过程有很大差异,比如当配置 runlevel为 1是,是不进入图形界面的。系统启动过程中会有一个init进程来拉起许多其他进程(各种系统服务,窗口界面)。在ubuntu上(11.10,12.04是这样,其他版本或其他linux发行版不确定)init会执行两个目录下的脚本,一个是/etc/init/下的,另一个是/etc/rc?.d/下的,问号可能是0~6的其中一个数字,代表运行级别。接下来,讲解一下流程以加深理解。

在ubuntu上,init进程首先执行/etc/init/目录下的rc-sysinit.conf,这个文件指明了本次启动的默认运行级别。这是上面第一步的意义:确保默认运行级别是2。接下来目录/etc/init下的其他脚本的执行都会根据不同的运行级别做出不同的动作,比如lightdm会判断运行级别是否处于1,2,3,4,5中的一个,是则启动lightdm,不是则不启动lightdm。这便是上面第二步的意义,修改 lightdm.conf ,把“2”加入到判断语句,使得lightdm在运行级别2的时候不要启动。明白了这些,你就可以灵活一点,例如把默认级别设置为3,而把3加入那个判断语句,也可以达到阻止lightdm启动的效果。完成了/etc/init/目录下的启动动作,init进程会继续执行/etc/rc2.d目录下的脚本。

2、关闭Ubuntu的载入画面
ubuntu启动时,会有一个ubuntu字样出现在屏幕,文字下方有闪烁的点,这时按ESC可以在动画和文字界面之间切换。这一步骤不属于lightdm,而是一个叫 plymouth 的进程在起作用。实际上,plymouth的意义就在于,在开机到图形桌面 (lightdm)起来这段时间里展示出一个动画,从而提高用户体验。

屏蔽的方法:

(1)、编辑 /etc/default/grub文件,原文11行附近:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 
去掉”splash“,改后:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"

(2)、执行命令:

sudu updat-grub

重启,即可看到,不再有载入画面出现

1.2 ubuntu 18

默认命令行形式启动

sudo systemctl set-default multi-user.target
reboot

临时使用一次图形界面进入

sudo systemctl start lightdm

默认图形界面启动

systemctl set-default graphical.target
reboot

2 还原配置

x windows禁用或者配置参数出错,Ubuntu无法正常启动,这时候需修改某些文件让系统正常启动,如果直接进入 recovery 模式,默认是文件权限只读,无法修改文件。这时我们需要进入recovery 的单用户模式,获得修改文件的权限。或者系统盘试用模式进入修改。

2.1 tty1-6进入

任意进入后,可以直接修改配置参数

2.2 单用户模式(recovery )

  • 单用户模式下,文件系统是只读模式,无法进行修改,挂载的u盘也是,这是需要执行命令
    mount –o remount,rw /
    让我们的/路径文件系统为可读模式,这样就可以实现自由修改了,详见linux–ubuntu(linux)外设挂载(挂载U盘)
  • 如果grub设置过,长按shift无法进去grub请修改相应配置文件,详见linux–grub介绍与设置
  • 1、重启ubuntu,随即长按shirft(Esc)进入grub菜单,或等待grub菜单的出现,如下图
    在这里插入图片描述
  • 2、选择recovery mode,接着用方向键将光标移至recovery mode,按"e"键进入编辑页面,如下图:
    在这里插入图片描述
  • 3、将 ro recovery nomodeset 改为 rw single init=/bin/bash
    在这里插入图片描述
  • 4、按 ctrl+x或者F10 进入单用户模式,当前用户即为root。这时候可以修改文件。修改完毕后重启即可
    在这里插入图片描述
  • 5、进入后,直接修改即可

2.3 系统盘试用模式

  • 制作系统盘
  • 试用进去
  • 修改配置
  • reboot

3 要点补充

3.1 Linux 系统主要启动步骤:

  • 1、 读取 MBR的信息,启动 Boot Manager
    Windows 使用 NTLDR作为 Boot Manager,如果您的系统中安装多个版本的 Windows,您就需要在 NTLDR中选择您要进入的系统。Linux 通常使用功能强大,配置灵活的 GRUB作为 Boot Manager。
  • 2.、加载系统内核,启动 init 进程
    init 进程是 Linux的根进程,所有的系统进程都是它的子进程。
  • 3、init 进程读取 /etc/inittab 文件中的信息,并进入预设的运行级别,
    按顺序运行该运行级别对应文件夹下的脚本。脚本通常以 start参数启动,并指向一个系统中的程序。通常情况下, /etc/rcS.d/目录下的启动脚本首先被执行,然后是/etc/rcN.d/目录。例如您设定的运行级别为 3,那么它对应的启动目录为 /etc/rc3.d/。
  • 4.、根据 /etc/rcS.d/文件夹中对应的脚本启动 Xwindow服务器 xorg Xwindow为 Linux下的图形用户界面系统。
  • 5.、启动登录管理器,等待用户登录
    Ubuntu 系统默认使用 GDM作为登录管理器,您在登录管理器界面中输入用户名和密码后,便可以登录系统。(您可以在 /etc/rc3.d/文件夹中找到一个名为 S13gdm 的链接)

3.2 ubuntu的init与系统服务设置

  • Init是位于/sbin/init的一个程序,它是在linux下,在系统启动过程中,初始化所有的设备驱动程序和数据结构等之后,由内核启动的一个用户级程序,并由此init程序进而完成系统的启动过程。
  • ubuntu与传统的linux略有不同,使用upstart完成系统的启动,但表面上仍维持init程序的形式。

3.3 运行级别

传统上,linux有几种不同的运行级别,包括如下几种:

  • 0 - 停机
  • 1 - 单用户模式
  • 2 - 多用户,没有 NFS
  • 3 - 完全多用户模式(标准的运行级)
  • 4 –系统保留的
  • 5 – X11(x window)
  • 6 - 重新启动
    系统启动后处于哪一种级别由init读取/etc/inittab文件中的缺省级别设置来确定,一般图形界面的系统是进入级别3。
    但是ubuntu与传统的不太一样,默认情况下是找不到/etc/inittab文件的,而且运行级别也有差别,具体分这样几个级别:
  • 0 –关闭系统
  • 1 –单用户模式
  • 2~5 –完整的多用户模式
  • 6 –重新启动
    也就是说,默认情况下级别2、3、4、5都是一样的,同时系统的默认级别设定也不是在inittab文件中,而是写在/etc/init/rc- sysinit.conf文件中。打开此文件,可以找到下面一句:
env DEFAULT_RUNLEVEL=2

这表明系统当前默认是进入级别2。

另外,在此文件中还有一段以if [ -r /etc/inittab ] 开始的代码,这里保留了使用inittab指定系统默认运行级别的功能,也就是说,如果用户手动创建了/etc/inittab,那么init将以 /etc/inittab中指定的默认运行级别进行系统的启动。比如说用户希望系统以级别3为默认运行级别,则只需在inittab文件中加入如下一行:

id:3:initdefault:

在经过/etc/init/rc-sysinit.conf确定运行级别后,init将进一步运行/etc/init.d/rc,然后根据级别进入 /etc/rc[?].d启动或关闭相应的服务。

3.4 服务的启动与关闭脚本

  • ubuntu下启动与关闭服务的脚本存放与/etc/rc[?].d目录下。其中[x]表示0 ~ 6,分别对应级别0 ~ 6,如/etc目录下的 rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d。假设rc-sysinit.conf或inittab中指定的默认级别是2,那么init将执行/etc/rc2.d目录下的脚本启动或关闭相应服务。
  • 如果打开/etc/rc[?].d目录,会发现这些目录下的文件都是形如Snnxxxx或Knnxxxx的符号链接,而且都是指向/etc /init.d。也就是说不同运行级别下服务的启动或关闭脚本均是放在/etc/init.d下,只不过根据不同级别的需要,在对应/etc /rc[?].d目录下放一个链接,不同的级别会需要不同的服务,因此不同/etc/rc[?].d目录下的链接文件也不尽相同以此区分。
  • 其中链接文件中以S开头的表示在调用/etc/init.d目录中对应脚本的时候会传递一个start参数,也就是启动对应服务,而以K开头的则是传递一个stop参数,由此关闭此服务,此处的K表示kill。
  • S和K后面的nn是一个数字,表示本脚本被执行的先后顺序,小号在前大号在后,这样以解决不同服务之间可能存在的先后依赖关系。比如说ftp服务依赖于网络服务的启动,所以ftp服务的编号就要大于网络服务的编号,在网络服务启动后再行启动。
  • 最后的xxxx则是服务的名字。
  • 另外,除了/etc/rc[0 ~ 6].d文件外,还有一个/etc/rcS.d目录,这个目录下的服务脚本与/etc/rc[0 ~ 6].d格式类似,也为指向/etc/init.d中的脚本的链接,但是会在/etc/rc[0~6].d中的脚本执行前首先被执行。

参考

1、切换ubuntu-18.04启动方式
2、关于Ubuntu修改默认运行级别
3、ubuntu单用户模式(安全模式)
4、linux–ubuntu(linux)外设挂载(挂载U盘)

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读