Linux运维——启动引导与修复
一、系统运行级别
1、运行级别
运行级别 | 含义 |
---|---|
关机 | |
1 | 单用户模式,可以想象为windows的安全模式,主要用于系统修复 |
2 | 不完全命令行模式,不含NFS服务 |
3 | 完全命令行模式,标准字符界面 |
4 | 系统保留 |
5 | 图形模式 |
6 | 重启动 |
- 使用命令查看系统的运行级别
runlevel
- 进入指定级别
init [级别]
2、修改默认启动级别
# centos6
# 修改/etc/inittab
# centos7
命令格式:
systemctl [command] [unit.target]
command参数:
get-default 取得当前的target
set-default 设置指定的target为默认的运行级别
isolate 切换到指定的运行级别
unit.target 上面列出的运行级别
3、开机启动自动运行命令
/etc/rc.d/rc.local
配置文件会在用户登录之前读取,在此文件中写入任何命令,在每次系统启动时都会执行一次。有任何需要在系统启动就运行的工作,只要写入
/etc/rc.d/rc.local
这个配置文件即可。
二、启动引导程序(Boot Loader)
1、Grub 目录
- 打开
/boot/grub2/
[[email protected] grub2]# ll
总用量 40
-rw-r--r--. 1 root root 64 2月 12 15:54 device.map
drwxr-xr-x. 2 root root 25 2月 12 15:54 fonts
-rw-r--r--. 1 root root 5162 2月 12 16:16 grub.cfg # grub 配置文件
-rw-r--r--. 1 root root 4287 2月 12 15:55 grub.cfg.1581495172.rpmsave
-rw-r--r--. 1 root root 1024 2月 12 16:16 grubenv
drwxr-xr-x. 2 root root 8192 2月 12 15:54 i386-pc
drwxr-xr-x. 2 root root 4096 2月 12 15:54 locale
- Grub 配置文件软连接路径
[[email protected] grub2]# ll /etc/grub2.cfg
lrwxrwxrwx. 1 root root 22 2月 12 16:13 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
2、Grub 配置文件
2.1在Grub中分区的表示方法
硬盘 | 分区 | Linux中设备文件名 | Grub中设备文件名 |
---|---|---|---|
第一块 SCSI 硬盘 | 第一个主分区 | /dev/sda1 | hd(0,0) |
第二个主分区 | /dev/sda2 | hd(0,1) | |
扩展分区 | /dev/sda3 | hd(0,2) | |
第一个逻辑分区 | /dev/sda5 | hd(0,4) | |
第二块 SCSI 硬盘 | 第一个主分区 | /dev/sdb1 | hd(1,0) |
第二个主分区 | /dev/sdb2 | hd(1,1) | |
扩展分区 | /dev/sdb3 | hd(1,2) | |
第一个逻辑分区 | /dev/sdb5 | hd(1,4) |
2.2 Grub 配置文件
vim /boot/grub/grub.conf
文件内容:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0 # 默认启动那个系统
timeout=5 # 等待时间
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-754.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=UUID=265e5c19-2d77-4123-b688-9a90a3786f72 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-754.el6.x86_64.img
-
default=0
- 默认启动第一个系统。也就是如果在等待世界结束后,用户没有选择进入哪一个系统,那么系统会默认进入第一个系统。如果有多系统并存,那么每个系统都会有自己的
字段,如果想要默认进入第二个系统,这里可以设置为title
。default=1
- 默认启动第一个系统。也就是如果在等待世界结束后,用户没有选择进入哪一个系统,那么系统会默认进入第一个系统。如果有多系统并存,那么每个系统都会有自己的
-
timeout=5
- 等待时间,默认为5秒。也就是进入系统时,如果5秒内用户没有按下任何键,那么系统会进入
字段定义的系统。当然可以手动修改此等待时间,如果default
则不会等待直接进入系统,timeout=0
则是一直等待用户输入,而不会自动进入系统。timeout=-1
- 等待时间,默认为5秒。也就是进入系统时,如果5秒内用户没有按下任何键,那么系统会进入
-
splashimage=(hd0,0)/grub/splash.xpm.gz
- 这里指定grub启动时的背景图文件的保存位置,这里的
表示第一个硬盘的第一个分区。(hd0,0)
- 这里指定grub启动时的背景图文件的保存位置,这里的
-
hiddenmenu
- 隐藏菜单,启动时默认只能看到读秒,而不能看到菜单。
系统配置项:
-
:系统启动时在 GRUB 的启动菜单中的标题。title CentOS(2.6.32-279.d6.i686)
-
:启动程序的保存分区。root(hd0,0)
-
kernel /vmlinuz-xxxx.x86_64 ro root=UUID=xxxxxxxx
-
:指定了内核文件的位置。/vmlinuz-xxxx.x86_64
-
:启动时以只读方式挂载根文件系统。ro
-
:指定根文件系统的所在位置。root=UUID=xxxxxxxx
- 配置项参数:
-
:禁用LUKS(用于磁盘加密)。rd_NO_LUKS
-
a:禁用软RAIDrd_NO_MD
-
:禁用硬RAIDrd_NO_DM
-
:禁用LVM,以上禁用均为在系统启动时禁用,用于加速系统启动速度。rd_NO_LVM
-
:键盘类型KEYBOARDTYPE=pc KEYTABLE=us
-
:自动为crashkernel=auto
预留内存crashkernel
-
:语言环境LANG=zh_CN.UTF-8
-
:(redhat graphics boot)用图片来代替启动过程中的文字信息。启动完成之后可以试用rhgb
命令查看这些信息。dmesg
-
:隐藏启动信息,只显示重要信息quiet
-
-
:指定了initrd /initramfs-2.6.32-754.el6.x86_64.img
内存文件系统镜像文件所在位置。initramfs
-
2.3 Grub 加密
- 生成密码
grub-md5-crypt
- 设置密码
default=0
timeout=5
password --md5 XXXXXXXXX
splashimage=xxxxx
注意:密码项必须添加在下方
timeout
上方才可生效。格式:
splashimage
password --md5 [生成的加密后的密码]
添加此密码不影响操作系统正常启动,在
title
下方添加
lock
则表示启动系统也需要输入密码。
注意:在远程服务器禁止使用此操作,否则会导致系统无法开机。