Linux
為什麼 Ubuntu/Linux /proc/mounts 對我撒謊?
我的 rootfs 硬碟損壞了 - 這可能導致文件系統以只讀方式掛載……但
/proc/mounts
仍然說它已掛載rw
:$ cat /proc/mounts rootfs / rootfs rw 0 0 sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 udev /dev devtmpfs rw,relatime,size=7575440k,nr_inodes=1893860,mode=755 0 0 devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0 tmpfs /run tmpfs rw,nosuid,relatime,size=3033888k,mode=755 0 0 /dev/disk/by-uuid/548b00b0-bd98-4017-9e62-5c27b633268b / ext4 ro,noatime,errors=remount- ro,data=ordered 0 0 none /sys/fs/fuse/connections fusectl rw,relatime 0 0 none /sys/kernel/debug debugfs rw,relatime 0 0 none /sys/kernel/security securityfs rw,relatime 0 0 none /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0 none /run/shm tmpfs rw,nosuid,nodev,relatime 0 0 /dev/sdb1 /mnt/storage1 ext4 ro,noatime,errors=remount-ro,data=ordered 0 0 /dev/sdc1 /mnt/storage2 ext4 rw,noatime,errors=remount-ro,data=ordered 0 0 /dev/sdd1 /mnt/storage3 ext4 rw,noatime,errors=remount-ro,data=ordered 0 0
但是文件系統是只讀的:
$ touch new touch: cannot touch `new': Read-only file system
這很不幸,因為我使用的 Nagios/Icinga 腳本正是針對這一點
check_ro_mounts
進行檢查/proc/mounts
的。它可以與安裝在其下的其他文件系統一起使用/mnt/
而不會出現問題。這是一些Linux核心技巧嗎?我也不知道
rootfs
這裡是什麼意思?$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.3 LTS Release: 12.04 Codename: precise $ uname -a Linux foo 3.5.0-25-generic #39~precise1-Ubuntu SMP Tue Feb 26 00:07:14 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
/
in有多個條目/proc/mounts
,第二個條目顯示有關您的真實根文件系統的資訊(注意ro
那裡的標誌):/dev/disk/by-uuid/548b00b0-bd98-4017-9e62-5c27b633268b / ext4 ro,noatime,errors=remount-ro,data=ordered 0 0
出現文件系統類型的第一個條目是
rootfs
因為 Linux 核心在引導期間在內部創建了一個基於 RAM 的文件系統,並在那裡解壓了initramfs存檔;然後 initramfs 腳本和實用程序載入所需的驅動程序模組並安裝真正的根文件系統。