<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 19.4 開機過程的問題解決 很多時候,我們可能因為做了某些設置,或者是因為不正常關機 (例如未經通知的停電等等) 而導致系統的 filesystem 錯亂,此時,Linux 可能無法順利開機成功,那怎么辦呢?難道要重灌?當然不需要啦! 進入 rescue 模式去處理處理,應該就 OK 的啦!下面我們就來談一談如何處理幾個常見的問題! ### 19.4.1 忘記 root 密碼的解決之道 大家都知道鳥哥的記憶力不佳,容易忘東忘西的,那如果連 root 的密碼都忘記了,怎么辦? 其實在 Linux 環境中 root 密碼忘記時還是可以救回來的!只要能夠進入并且掛載 / , 然后重新設置一下 root 的密碼,就救回來啦! 只是新版的 systemd 的管理機制中,默認的 rescue 模式是無法直接取得 root 權限的喔!還是得要使用 root 的密碼才能夠登陸 rescure 環境耶! 天哪!那怎辦?沒關系,還是有辦法滴~通過一個名為“ rd.break ”的核心參數來處理即可喔!只是需要注意的是, rd.break 是在 Ram Disk 里面的操作系統狀態,因此你不能直接取得原本的 linux 系統操作環境。所以,還需要 chroot 的支持! 更由于 SELinux 的問題,你可能還得要加上某些特殊的流程才能順利的搞定 root 密碼的救援喔! 現在就讓我們來實作一下吧!(1)按下 systemctl reboot 來重新開機,(2)進入到開機畫面,在可以開機的菜單上按下 e 來進入編輯模式, 然后就在 linux16 的那個核心項目上面使用這個參數來處理: ![通過 rd.break 嘗試救援 root 密碼](https://box.kancloud.cn/2016-05-13_5735737d4d85e.jpg)圖19.4.1、通過 rd.break 嘗試救援 root 密碼 改完之后按下 [crtl]+x 開始開機,開機完成后屏幕會出現如下的類似畫面,此時請注意,你應該是在 RAM Disk 的環境,并不是原本的環境, 因此根目錄下面的東西跟你原本的系統無關喔!而且,你的系統應該會被掛載到 /sysroot 目錄下,因此,你得要這樣作: ``` Generating "/run/initramfs/rdsosreport.txt" Enter emergency mode. Exit the shell to continue. Type "journalctl" to view system logs. You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot after mounting them and attach it to a bug report. switch_root:/# # 無須輸入密碼即可取得 root 權限! switch_root:/# mount # 檢查一下掛載點!一定會發現 /sysroot 才是對的! .....(前面省略)..... /dev/mapper/centos-root on /sysroot type xfs (ro,relatime,attr,inode64,noquota) switch_root:/# mount -o remount,rw /sysroot # 要先讓它掛載成可讀寫! switch_root:/# chroot /sysroot # 實際切換了根目錄的所在!取回你的環境了! sh-4.2# echo "your_root_new_pw" &#124; passwd --stdin root sh-4.2# touch /.autorelabel # 很重要!變回 SELinux 的安全本文~ sh-4.2# exit switch_root:/# reboot ``` 上述的流程你應該沒啥大問題才對~比較不懂的,應該是 (1)chroot 是啥? (2)為何需要 /.autorelabel 這個文件? * chroot 目錄:代表將你的根目錄“暫時”切換到 chroot 之后所接的目錄。因此,以上表為例,那個 /sysroot 將會被暫時作為根目錄, 而我們知道那個目錄其實就是最原先的系統根目錄,所以你當然就能夠用來處理你的文件系統與相關的帳號管理啰! * 為何需要 /.autorelabel:在 rd.break 的 RAM Disk 環境下,系統是沒有 SELinux 的,而你剛剛更改了 /etc/shadow (因為改密碼啊!), 所以“這個文件的 SELinux 安全本文的特性將會被取消”喔!如果你沒有讓系統于開機時自動的回復 SELinux 的安全本文, 你的系統將產生“無法登陸”的問題 (在 SELinux 為 Enforcing 的模式下!)加上 /.autorelabel 就是要讓系統在開機的時候自動的使用默認的 SELinux type 重新寫入 SELinux 安全本文到每個文件去!。 不過加上 /.autorelabel 之后,系統在開機就會重新寫入 SELinux 的 type 到每個文件,因此會花不少的時間喔!如果你不想要花太多時間, 還有個方法可以處理: * 在 rd.break 模式下,修改完 root 密碼后,將 /etc/selinux/config 內的 SELinux 類型改為 permissive * 重新開機后,使用 root 的身份下達“ restorecon -Rv /etc ”僅修改 /etc 下面的文件; * 重新修改 /etc/selinux/config 改回 enforcing ,然后“ setenforce 1 ”即可! ### 19.4.2 直接開機就以 root 執行 bash 的方法 除了上述的 rd.break 之外,我們還可以直接開機取得系統根目錄后,讓系統直接丟一個 bash 給我們使用喔! 使用的方法很簡單,就同樣在開機的過程中,同在 linux16 的那一行,最后面不要使用 rd.break 而是使用“ init=/bin/bash ”即可! 最后開機完成就會丟一個 bash 給我們!同樣不需要 root 密碼而有 root 權限! 但是要完整的操作該系統是不可能的,因為我們將 PID 一號更改為 bash 啦!所以,最多還是用在救援方面就是了! 而且,同樣的,要操作該系統你還是得要 remount 根目錄才行啊!否則無法更改文件系統啦!基本上,這個系統的處理方法你應該是要這樣作的: ![直接開機使用 bash 的方法](https://box.kancloud.cn/2016-05-13_5735737d6b698.jpg)圖19.4.2、直接開機使用 bash 的方法 如上圖的完整截圖,你會發現由于是最默認的 bash 環境,所以連 PATH 都僅有 /bin 而已~所以你不能下達 reboot !同時, 由于沒有 systemd 或者是 init 的存在,所以真的使用絕對路徑來下達 reboot 時,系統也是無法協助你重新開機啦! 此時只能按下 reset 或者是強制關機后,才能再次開機!所以...感覺上還是 rd.break 比較保險... 同時請注意,鳥哥上面刻意忘記處理 /.autorelabel 的文件創建~你如果按照鳥哥上述的方法實作的話,嘿嘿!此時應該是無法登陸的喔! 請重新開機進入 rd.break 模式,然后使用 SELinux 改為 permissive 的方法來實驗看看。等到可以順利以 root 登陸系統后, 使用 restorecon -Rv /etc 來瞧一瞧,應該會像下面這樣: ``` [root@study ~]# getenforce Permissive [root@study ~]# restorecon -Rv /etc restorecon reset /etc/shadow context system_u:object_r:unlabeled_t:s0 -&gt;system_u:object_r:shadow_t:s0 restorecon reset /etc/selinux/config context system_u:object_r:unlabeled_t:s0 -&gt;system_u:object_r:selinux_config_t:s0 [root@study ~]# vim /etc/selinux/config SELINUX=enforcing [root@study ~]# setenforce 1 ``` ### 19.4.3 因文件系統錯誤而無法開機 如果因為設置錯誤導致無法開機時,要怎么辦啊?這就更簡單了!最容易出錯的設置而導致無法順利開機的步驟,通常就是 /etc/fstab 這個文件了,尤其是使用者在[實作 Quota/LVM/RAID](../Text/index.html) 時,最容易寫錯參數, 又沒有經過 mount -a 來測試掛載,就立刻直接重新開機,真要命!無法開機成功怎么辦?這種情況的問題大多如下面的畫面所示: ![文件系統錯誤的示意圖](https://box.kancloud.cn/2016-05-13_5735737d83837.jpg)圖19.4.3、文件系統錯誤的示意圖 看到最后兩行,他說可以輸入 root 的密碼繼續加以救援喔!那請輸入 root 的密碼來取得 bash 并以 mount -o remount,rw / 將根目錄掛載成可讀寫后,繼續處理吧!其實會造成上述畫面可能的原因除了 /etc/fstab 編輯錯誤之外,如果你曾經不正常關機后,也可能導致文件系統不一致 (Inconsistent) 的情況, 也有可能會出現相同的問題啊!如果是扇區錯亂的情況,請看到上圖中的第二行處, fsck 告知其實是 /dev/md0 出錯, 此時你就應該要利用 fsck.ext3 去檢測 /dev/md0 才是!等到系統發現錯誤,并且出現“clear [Y/N]”時,輸入“ y ”吧! 當然啦,如果是 XFS 文件系統的話,可能就得要使用 xfs_repair 這個指令來處理。這個 fsck/xfs_repair 的過程可能會很長,而且如果你的 partition 上面的 filesystem 有過多的數據損毀時,即使 fsck/xfs_repair 完成后,可能因為傷到系統盤,導致某些關鍵系統文件數據的損毀,那么依舊是無法進入 Linux 的。此時,就好就是將系統當中的重要數據復制出來,然后重新安裝,并且檢驗一下,是否實體硬盤有損傷的現象才好!不過一般來說,不太可能會這樣啦~ 通常都是文件系統處理完畢后,就能夠順利再次進入 Linux 了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看