Linux從入門到精通——linux的系統排錯


####系統排錯###

 

1.誤刪boot下的文件

      

      

 

   (1)不慎刪除自動引導文件
  /boot/grub2/grub.cfg                                                                                  ##系統自動引導文件
  set root='hd0,msdos1'                                                                               ##設定引導啟動分區路徑
  Linux16 /vmlinuz-3.10.0-327.el7.x86_64  ro root=/dev/vda1  selinux=0     ##設定啟動內核,如果selinux沒關會讓系統啟動卡住
  initrd16 /initramfs-3.10.0-327.el7.x86_64.img                                            ##啟動初始化程序
  boot

  grub2-mkconfig > /boot/grub2/grub.cfg          ##永久恢復

      

      

 

下面的實驗需要新建一個cdrom的啟動盤,下面是方法:

       

   (2)不慎刪除啟動內核怎么辦
  rm -fr /boot/vmlinuz-3.10.0-327.el7.x86_64
  安裝啟動盤(上面新添加的光驅),啟動拯救模式
  chroot /mnt/systimg                            ## 切換真實的root環境。掛載系統至此你已進入自己安裝的Linux系統
  mkdir /rhel7.0                                     ## 新建一個新的目錄
  mount /dev/sr0 /rhel7.0      ## /dev/sr0是光驅的設備名,/dev/cdrom代表光驅。cdrom是sr0的軟鏈接.你ll /dev/cdrom和ll /dev/sr0看看顯示


  cd /rhel7.0/Pcakages
  cp kernel-3.10.0-123.el7.x86_64.rpm /mnt
  cd /mnt
  rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id
  cd /mnt
  ls
  cd boot/
  ls
  cp vmlinuz-3.10.0-327.el7.x86_64 /boot
  exit
  exit
  刪除啟動盤

      

      

      

      

 

   (3)刪除初始化程序如何恢復
  rm -fr /boot/initramfs-3.10.0-327.el7.x86_64.img
  拯救模式
  chroot /mnt/systimg
  mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

      

 

   (4)忘記root密碼
  重啟系統
  按E
  在內核行后刪除ro后的內容
  ro改為rw加空格
  加rd.break
  Ctrl  x
  出現switch_root后,輸入chroot /sysroot/
  輸入echo westos|passwd --stdin root             ##改root密碼為westos
  touch /.autorelabel                                          ##改完密碼后selinux默認不識別新密碼,建立此文件使selinux識別新密碼

      

      

 

   (5)進入不了sh的無圖形界面
  chroot /mnt/sysimage
  顯示沒有/bin/bash這個文件
  cp /bin/bash /mnt/sysimage/bin/bash
  chroot /mnt/sysimage
  這樣就好了

      

 

   (6)更改默認的指向  (更改default.target)
  cd /etc/systemd/system
  ll default.target
  lrwxrwxrwx. 1 root root 36 Jul  1 00:19 default.target -> /lib/systemd/system/graphical.target           ##默認軟鏈接的指向

  systemctl set-default multi-user.target

      

      

      會顯示:
      rm '/etc/systemd/system/default.target'
      ln -s '/vsr/lib/systemd/system/multi-uer.target' '/etc/systemed/system/default.target'
      ln -snf(強制更改) /usr/lib/systemd/system/poweroff.target default.target
      reboot                                            ##系統會卡在一直執行這里然后關機這個狀態

      

      

 

(7)reboot以后發現直接出現的不是grub >,而是grub  sxxx > .

  需要在在啟動盤里面把上面文件全部在 /boot 下cp一份 才能重新啟動。

 

 

=======================================================================================================================

重置密碼主要有rd.break和init兩種方法。

rd.break方法:

1、啟動的時候,在啟動界面,相應啟動項,內核名稱上按“e”;

2、進入后,找到linux16開頭的地方,按“end”鍵到最后,輸入rd.break,按ctrl+x進入;

3、進去后輸入命令mount,發現根為/sysroot/,並且不能寫,只有ro=readonly權限;

4、mount -o remount,rw /sysroot/,重新掛載,之后mount,發現有了r,w權限;

5、chroot /sysroot/ 改變根;

(1)echo redhat|passwd –stdin root 修改root密碼為redhat,或者輸入passwd,交互修改;

(2)還有就是先cp一份,然后修改/etc/shadow文件

6、touch /.autorelabel 這句是為了selinux生效

7、ctrl+d 退出

8、然后reboot

至此,密碼修改完成

init方法:

1. 啟動系統

,並在GRUB2啟動屏顯時,按下e鍵進入編輯模式。

2. 在linux16/linux/linuxefi所在參數行尾添加以下內容:init=/bin/sh

3. 按Ctrl+x啟動到shell。

4. 掛載文件系統為可寫模式:mount –o remount,rw /

5. 運行passwd,並按提示修改root密碼。6. 如何之前系統啟用了selinux,必須運行以下命令,否則將無法正常啟動系統:touch /.autorelabel

7. 運行命令exec /sbin/init來正常啟動,或者用命令exec /sbin/reboot重啟

=========================================================================================================================


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM