前言
在Linux有可能存在/boot分區(qū)被修改或者配置文件丟失,導致無法正常啟動系統(tǒng)。這時候就需要使用grub2的命令模式手動啟動系統(tǒng)或者iso文件進行修復。
grub2常用命令
gurb2中支持了很多命令。
1、查看磁盤分區(qū)
ls%20%20%20-l
詳細列出當前的所有設備。對于分區(qū),會顯示其label及uuid。
ls (hd1,1)/
列出(hd1,1)分區(qū)下文件
2、設置root分區(qū)(注意,這里的root是grub的root變量,不是真正的root分區(qū)目錄linux命令,這里的設置變量時候為了方便操作)
set root=(hd0,msdos1)
ls -l /
列出當前設為root的分區(qū)下的文件
3、loopback掛載ISO鏡像進行啟動
loopback命令可用于建立回放設備,如
loopback lo0 (hd0,msdos2)/centos7.iso
可以使用lo0設備來訪問centos7.iso里的內容,比如說,可以從centos7.iso里的軟盤映像中啟動
loopback (hd0,msdos2)/centos7.isolinux (lo0)/isolinux/vmlinuzinitrd (lo0)/isolinux/initrd.imgboot
要刪除某一回放設備,可以使用-d參數:
loopback -d lo0
4、boot啟動加載的配置
應用
1、在grub2中建議去編輯/etc/default/grub這個配置文件,然后使用update-grub或者grub-mkconfig命令來更新grub2的配置文件。有可能出現不小心修改錯了/boot/grub/grub.cfg的配置文件,導致啟動系統(tǒng)的時候,停留在grub>的命令行界面,無法正常啟動。這時候就可以通過手動加載文件,啟動系統(tǒng)
grub>%20ls%20-l%20(通過ls%20-l%20來一個分區(qū)找對應的內核啟動文件)grub>%20insmod%20xfsgrub>%20set%20root=(hd0,msdos1)%20%20%20(這里設置找到的boot分區(qū))grub>%20linux%20/vmlinuz-3.10.0-514.el7.x86_64%20%20root=/dev/mapper/centos-root%20%20(root=這里設置的就是系統(tǒng)真正的根分區(qū))grub>%20initrd%20/initramfs-.3.10.0-514.el7.x86_64.imggrub>%20boot
啟動進入系統(tǒng)只有,使用grub-mkconfig命令重新生成一個grub.cfg的配置文件就可以修復了。
grub-mkconfig%20-o%20%20%20/boot/grub2/grub.cfg
2、還有一種情況,就是boot分區(qū)被格式化,或者/boot目錄被刪除了,這時候就沒有配置文件了,需要借助另外的啟動介質來修復了。
a、在光盤啟動項里面選擇Troubleshooting進行啟動
b、接著選擇Resource a CentOS system
c、回車之后就可以進入一個shell進行操作了,這時候磁盤的系統(tǒng)默認是被掛載到/mnt/sysimage里面
d、使用rpm命令安裝丟失的文件
[root@rhel5 /]#rpm –ivh /mnt/cdrom/servers/samba-swat-3.0.28-0.el5.8.i386.rpm。[root@localhost~]#cp/mnt/cdrom/packages/xinetd-2.3.14-29.el6.i686.rpm./。[root@localhost src]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm。
e、安裝完包以后,/boot目錄的文件就基本都有了,這時候只需要切換一下root環(huán)境,更新一下配置文件就可以了。
chroot /mnt/sysimage/
grub-install /dev/sda (如果磁盤頭的grub被清除掉了linux命令,這里重新安裝一下)
grub-mkconfig -o /boot/grub2/grub.cfg