/dev/vda虚拟机下第一块硬盘,他挂在哪,哪就是这个虚拟机的家目录
/dev/sr0就是CDROM
fdisk -l
/dev/vdal后的*在哪里,启动分区就在哪里
把446字节用空盖住
先搞坏虚拟机(在虚拟机管理器中)
vim /etc/sysconfig/selinux先把火墙关掉(这样做,一会重启的时候火墙不用重置,速度会快一点)
dd if=/dev/zero of=/dev/vda bs=446 count=1把引导开机的446字节用‘空’盖住
reboot重启
起不来(因为系统读完446字节后找不到被引导到哪)
修复虚拟机
先Force off虚拟机
然后点那个灯泡(Show vitual hardware details)
里面没有光盘图标
Add Hardware-Storage添加光盘(选择镜像所在位置建立IDE CDROM)
Boot Options 使系统先启动光盘
应用后启动虚拟机(进来之后使黑的文本界面:进入挽救模式(重装Windows的话Linux会遇到问题,需要进入挽救模式))
Troubleshooting
Rescue a Red Hat Enterprise Linux system
在这个蓝色背景的界面会反复提醒你设备被挂在/mnt/sysimage
chroot /mnt/sysimage指定根分区(因为配置文件在/etc,不然配置不了),df查看
grub2-install /dev/vda (启动分区所在硬盘)
两次退出自动重启
开机后
先读mbr
之后读/boot
vim /boot/grub2/grub.cfg
grub的自动引导文件:
1)hd0第一块硬盘 dos分区方式的第一个硬盘
2)内核
3)启动初始化镜像(把所有的配置文件,有镜像提供)
1)引导文件丢失
rm -rf /boot/grub2/grub.cfg删除引导文件(模拟引导文件丢失)
grub2-mkconfig > /boot/grub2/grub.cfg(如果每重启的话这样就可以恢复了)
rm -rf /boot/grub2/grub.cfg删除引导文件
reboot
grub > set root=’hd0,msdos1’此位置不
固定,位置指定在/boot所在分区
grub > linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1 /分区的设备名称
grub > initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img
grub > boot
grub2-mkconfig > /boot/grub2/grub.cfg
例如真机中
/boot在/dev/sda6 挂载,则第一行’hd0,msdos6’
/ 在/dev/sda8 挂载,则第二行grub > linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda8
以上操作可以使系统正常启动。但是使临时的,所以进入系统后还需要执行
grub2-mkconfig > /boot/grub2/grub.cfg
就变成永久的了
2)系统选择界面(/boot)
时间
vim /boot/grub2/grub.cfg
63.67行时间一定要一致
reboot
更改后,停留在选择系统界面的时间就改为所设定时间
标题
vim /boot/grub2/grub.cfg
70行之后的###BEGIN /etc/grub.d/10_Linux###中改(假设电脑是双系统)
名称随便起
set root=’hd0,msdos1’ c盘位置
chainloader +1 引导程序
之后选择系统界面就会有刚才设定的系统
顺序
grub2-set-defaule 1(先启动第二个)
PS:0是第一个,1是第二个
3)内核文件丢失
rm -rf /boot/vmlinuz-3.10.0-123.e17.x86_64(删掉内核文件)
进入挽救模式
chroot /mnt/sysimage
mkdir /rhel7
mount /dev/sr0 /rhel7
cd /rhel7/Packages
cp kernal-3.10.0-123.e17.x86_64.rpm /mnt
cd /mnt
rpm2cpio kernal-3.10.0-123.e17.x86_64.rpm | cpio -id(以cpio的压缩格式解压,分解成几个,找到我们需要的那个 -id以目录的形式输出)
cd boot
cp vmlinuz-3.10.0-123.e17.x86_64 /boot
两次退出后自动重启,恢复成功
grub2-mkconfig > /boot/grub2/grub.cfg
3)镜像文件丢失
rm -rf initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img
没重启:
mkinitrd /boot/initramfs-
(uname−r).img
(uname -r)
就好了
重启了:
进到挽救模式中
chroot /mnt/sysimage
mkinitrd /boot/initramfs-
(uname−r).img
(uname -r)
会有个报错,不影响
退出两次自动重启
4)/boot丢失
rm -rf /boot
进入挽救模式
chroot /mnt/sysimage
mkdir /boot
grub2-install /dev/vda(修复446文件指向)
mkdir /rhel7
mount /dev/sr0 /rhel7
cd /rhel7/Packages
rpm -ivh kernal-3.10.0-123.e17.x86_64.rpm –force
grub2-mkconfig > /boot/grub2/grub.cfg
退出两次自动重启
4)当开机启动级别被篡改
systemctl set-default reboot.target
开机按上下键停止读秒
按‘E’进入编辑模式
选择内核启动行
linux16 /vmlinuz-xxxxxxx ro xxxxxx改编为:
linux16 /vmlinuz-xxxxxxx rw rd.break
ctrl +x
进入挽救模式
chroot /sysroot
rm -rf /etc/systemd/system/default.target
ln -s /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target
5)超级用户忘记密码
开机按上下键停止读秒
按‘E’进入编辑模式
选择内核启动行
linux16 /vmlinuz-xxxxxxx ro xxxxxx改编为:
linux16 /vmlinuz-xxxxxxx rw rd.break
ctrl +x
进入挽救模式
chroot /sysroot
passwd
给新密码
再输一边
touch /.atuorelabel创建初始化SELinux文件
退出两次自动重启
PS:格式化U盘 mkfs/vfat /dev/vdb