沙丁鱼介绍

注册

 

发新话题 回复该主题

linuxgrub2常用命令 [复制链接]

1#

前言

在Linux有可能存在/boot分区被修改或者配置文件丢失,导致无法正常启动系统。这时候就需要使用grub2的命令模式手动启动系统或者iso文件进行修复。

grub2常用命令

gurb2中支持了很多命令。

1、查看磁盘分区

ls-l

详细列出当前的所有设备。对于分区,会显示其label及uuid。

ls(hd1,1)/

列出(hd1,1)分区下文件

2、设置root分区(注意,这里的root是grub的root变量,不是真正的root分区目录,这里的设置变量时候为了方便操作)

setroot=(hd0,msdos1)

ls-l/

列出当前设为root的分区下的文件

3、loopback挂载ISO镜像进行启动

loopback命令可用于建立回放设备,如

loopbacklo0(hd0,msdos2)/centos7.iso

可以使用lo0设备来访问centos7.iso里的内容,比如说,可以从centos7.iso里的软盘映像中启动

loopback(hd0,msdos2)/centos7.isolinux(lo0)/isolinux/vmlinuzinitrd(lo0)/isolinux/initrd.imgboot

要删除某一回放设备,可以使用-d参数:

loopback-dlo0

4、boot启动加载的配置

应用

1、在grub2中建议去编辑/etc/default/grub这个配置文件,然后使用update-grub或者grub-mkconfig命令来更新grub2的配置文件。有可能出现不小心修改错了/boot/grub/grub.cfg的配置文件,导致启动系统的时候,停留在grub的命令行界面,无法正常启动。这时候就可以通过手动加载文件,启动系统

grubls-l(通过ls-l来一个分区找对应的内核启动文件)grubinsmodxfsgrubsetroot=(hd0,msdos1)(这里设置找到的boot分区)grublinux/vmlinuz-3.10.0-.el7.x86_64root=/dev/mapper/centos-root(root=这里设置的就是系统真正的根分区)grubinitrd/initramfs-.3.10.0-.el7.x86_64.imggrubboot

启动进入系统只有,使用grub-mkconfig命令重新生成一个grub.cfg的配置文件就可以修复了。

grub-mkconfig-o/boot/grub2/grub.cfg

2、还有一种情况,就是boot分区被格式化,或者/boot目录被删除了,这时候就没有配置文件了,需要借助另外的启动介质来修复了。

a、在光盘启动项里面选择Troubleshooting进行启动

b、接着选择ResourceaCentOSsystem

c、回车之后就可以进入一个shell进行操作了,这时候磁盘的系统默认是被挂载到/mnt/sysimage里面

d、使用rpm命令安装丢失的文件

rpm-ivh/mnt/cdrom/Packages/kernel-3.10.0-.el7.x86_64.rpm--root=/mnt/sysimage/--force

e、安装完包以后,/boot目录的文件就基本都有了,这时候只需要切换一下root环境,更新一下配置文件就可以了。

chroot/mnt/sysimage/

grub-install/dev/sda(如果磁盘头的grub被清除掉了,这里重新安装一下)

grub-mkconfig-o/boot/grub2/grub.cfg

分享 转发
TOP
发新话题 回复该主题