雙系統配置與簡單的linux系統修復(boot分區,root密碼等)

當一臺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中提示缺什麼就給什麼往往能輕鬆的解決問題





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章