双系统配置与简单的linux系统修复(boot分区,root密码等)

来源:互联网 发布:淘宝店铺分数怎么会 编辑:程序博客网 时间:2024/05/17 04:19

当一台Linux无法开机时一定要准备一张和Linux系统版本相同的系统光盘,用于急救系统用

###系统修复技术##

一个磁盘的前512(446+64+2)字节很重要
446:记录了系统盘系统位置
64:记录了磁盘的分区信息
2:磁盘标签
####当前446字节被删除或是出错时####
dd if=dev/vda of=/mnt/mbr bs=446 count=1##截取启动磁盘的前446字节

hexdump -C /mnt/mbr ##查看二进制文件

1.利用光驱进入急救系统
2.grub2-install /dev/vda##修复磁盘的第一个扇区(前446字节)(这条命令在linux的正常运行时也可移执行)

####/boot/grub2/grub.cfg出错时或被删除时#####

在开机时会进入gurb2的命令行,在命令行里执行以下命令即可启动:

set root='hd0,msdos1'##设定启动区为第一块硬盘的第一分区
linux16 /vmlinuz-3.10.0-327.el7.x86_64 ro root=/dev/vda1   ##设定内核
initrd16 /initramfs-3.10.0-327.el7.x86_64.img##设定初始化程序



启动成功后,再次重启还是会出错,所以还要在开机后执行下面这条命令:

grub2-mkconfig >/boot/grub2/grub.cfg##修复grub.cfg

##用于双系统的默认启动

grub2-set-default 1##设定默认为第二个选项
##装双系统后的启动配置(先装Win后装linux)
装完linux后,发现无法进入windows,所以要修改/boot/grub2/grub.cfg:
vim /boot/grub2/grub.cfg
>menuentry 'windows 10' {##设定Windows启动
>        set root='hd0,msdos1'
>        chainloader +1
>}


##当/boot/vmlinuz-xxxx.xxx.x86_64出错时###
1.设置为网络启动或者插入系统光盘
2.进入系统急救(光驱里的第二选项)
3.获得镜像里的Packages里的kernel-3.10.0-327.el7.x86_64.rpm
4.rpm2cpio kernel-3.10.0-327.el7.x86_64.rpm |cpio -id ##拆开这个rpm获得vmlinuz-3.10.0-327.el7.x86_64
5.cp vmlinuz-3.10.0-327.el7.x86_64 /boot##复制到/boot下


->可以的话备份vmlinuz-3.10.0-327.el7.x86_64即可快速修复(及不用执行4)


##当/boot/initramfs-x.xx.x-xxx.xxx.x86_64.img出错时##
1.利用光驱(光驱的版本必须和被救的版本相同)进入急救系统
2.mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)##重新生成即可

####当boot被删除时###
1.grub2-install /dev/vda ##安装grub2(也能修复446字节)
2.rpm2cpio /kernel-3.10.0-123.el7.x86_64.rpm |cpio -id
##解压rpm,获得vmlinux
3.cp vmlinuz-3.10.0-123.el7.x86_64 /boot ##复制vmlinux到boot下
4.mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
##产生initramfs
5.grub2-mkconfig >boot/grub2/grub.cfg ##产生grub.cfg文件
6.开机重启即可


####开机自启服务出现问题导致无法开机时####
1.修改开机的grub2
2.linux16=*rw ed.break ##按e进入编辑,Ctrl+x执行
3.chroot sysroot/ ##切换至本地shell
4.rm -fr /etc/systemd/system/default.target ##删除错误的优先级服务
5.ln -s /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target##重新建立default.target
6.推出继续启动


####当忘记root密码时(redhat,centos)###
1.修改开机的grub2
2.linux16=*rw ed.break ##按e进入编辑,Ctrl+x执行
3.chroot sysroot/ ##切换至本地shell
4.passwd ##修改密码
5.touch /.autorelabel ##必须创建
6.推出继续启动


linux中提示缺什么就给什么往往能轻松的解决问题





0 0
原创粉丝点击