模擬LINUX磁碟分割槽有可用空間無可用Inodes時報錯:No space left on device

還不算暈發表於2014-04-24

參考:磁碟檔案系統

1.建立測試指令碼:

[oracle@ocm1 ~]$ vi touchfile.sh

#!/bin/bash
for abc in {1..9}
do
      touch /boot/test/$abc
done
"touchfile.sh" 5L, 66C written                                

2.建立測試目錄、測試指令碼

[root@ocm1 oracle]# cd /boot
[root@ocm1 boot]# mkdir test
[root@ocm1 boot]# ls
config-2.6.18-308.el5              symvers-2.6.32-300.10.1.el5uek.gz
config-2.6.32-300.10.1.el5uek      System.map-2.6.18-308.el5
grub                               System.map-2.6.32-300.10.1.el5uek
initrd-2.6.18-308.el5.img          test
initrd-2.6.32-300.10.1.el5uek.img  vmlinuz-2.6.18-308.el5
lost+found                         vmlinuz-2.6.32-300.10.1.el5uek
symvers-2.6.18-308.el5.gz
[root@ocm1 boot]# cd -
/home/oracle
[root@ocm1 oracle]# sh touchfile.sh
[root@ocm1 oracle]# cd -
/boot
[root@ocm1 boot]# cd test
[root@ocm1 test]# ls
1  2  3  4  5  6  7  8  9

3.檢視當前/boot目錄可用Inodes數量

[root@ocm1 test]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda3            7318528  185460 7133068    3% /
/dev/sda1              26104      50   26054    1% /boot
tmpfs                 128334       1  128333    1% /dev/shm

4.修改指令碼,直接將可用Inodes用光

[root@ocm1 boot]# cd /home/oracle/
[root@ocm1 oracle]# vi touchfile.sh
#!/bin/bash
for abc in {10..26110}
do
      touch /boot/test/$abc
done
~
"touchfile.sh" 5L, 71C written

5.執行指令碼,指令碼未執行完,即報錯:No space left on device,

事實上此時用df -h可以看到目錄下有可用空間,可是因為沒有Inodes,已經無法新建檔案了,報錯為:No space left on device

[root@ocm1 oracle]# sh touchfile.sh
[root@ocm1 oracle]# sh touchfile.sh
touch: cannot touch `/boot/test/26064': No space left on device
touch: cannot touch `/boot/test/26065': No space left on device
………………………………………………
touch: cannot touch `/boot/test/26109': No space left on device
touch: cannot touch `/boot/test/26110': No space left on device
[root@ocm1 oracle]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              28G   11G   15G  43% /
/dev/sda1              99M   21M   73M  23% /boot
tmpfs                 502M     0  502M   0% /dev/shm
[root@ocm1 oracle]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda3            7318528  185460 7133068    3% /
/dev/sda1              26104   26104       0  100% /boot
tmpfs                 128334       1  128333    1% /dev/shm
手動執行建立目錄和檔案命令報同樣錯誤:
[root@ocm1 oracle]# cd /boot/
[root@ocm1 boot]# mkdir a
mkdir: cannot create directory `a': No space left on device
[root@ocm1 boot]# touch abc
touch: cannot touch `abc': No space left on device

相關文章