標籤:
同事求救, 說重啟了一下debian, 系統就掛了.
報如下錯誤
```
loading, please wait...
/dev/mapper/debian--vg-root contains a file system with errors,check the file system.
/dev/mapper/debian-vg-root:
Inodes that were part of a corrupted orphan linked list found.
/dev/mapper/debian--vg-root: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
...
fsck exited with status code 4
The root filesystem on /dev/dm-0 requires a manual fsck
modprobe: module ehci-orion not found in modules.dep
BusyBox v1.22.1 (Debian 1:1.22.0-9+deb8u1) built-in shell(ash)
Enter ‘help‘ for a list of built-in commands.
/bin/sh: can‘t access tty: job control turned off
(initramfs)_
```
裡面的裡面是說根節點有檔案系統錯誤, 需要修複. 然後系統自動跑去修複, 修複的是/dev/mapper/debian--vg-root, 修複失敗, 模組ehci-orion在核心裡面沒找到. 所以系統直接進了initramfs系統.
這裡我們可以分析一下, initramfs是改進版的tmpfs的應用, linux在啟動的時候載入核心和 initramfs 到記憶體執行, 核心初始化之後, 切換到使用者態執行 initramfs 的程式/指令碼, 載入需要的驅動模組、必要配置等, 然後載入 rootfs 切換到真正的 rootfs 上去執行後續的 init 過程, 比如案頭等等.
在修複的時候, 去修複了/dev/mapper/debian--vg-root, 實際這是一個連結, 因為根節點實際沒有掛載上, 所以這個連結是無效的. 自然就修複失敗.
而真實的根節點是掛在/dev/dm-0上的.
所以在initramfs裡面執行下fsck來修複
```
fsck.ext4 -y /dev/dm-0
```
斷行符號就可以自動修複了, 同事的檔案系統是ext4, 如果你的是ext3, 就換成fsck.ext3.
修複完重啟下就可以重新引導和掛載上根檔案系統了.
可以在initramfs裡面執行
```
cat /proc/cmdline 來查看BOOT的image掛載
BOOT_IMAGE=/vmlinuz-3.16.0-4-amd64 root=/dev/mapper/debian--vg-root ro quiet
```
debian修複/dev/mapper/debian--vg-root檔案錯誤導致ehci-orion not found in modules.dep