[email?protected]:/extFlash1/rootfs/gentoo# df -i Filesystem?????????? Inodes? IUsed? IFree IUse% Mounted on /dev/sda2?????????? 1179648 210218 969430?? 18% / udev???????????????? 124795??? 532 124263??? 1% /dev tmpfs??????????????? 126991??? 455 126536??? 1% /run none???????????????? 126991????? 6 126985??? 1% /run/lock none???????????????? 126991????? 1 126990??? 1% /run/shm /dev/sda5???????????? 24096??? 231? 23865??? 1% /boot /dev/sdb1??????????? 655360 317560 337800?? 49% /extFlash1 /dev/mapper/loop0p2? 222656 222656????? 0? 100% /mnt
因为文件体系所对应的inode已经所有行使,最终无法给后续复制的文件分派inode。
3、办理要领
从头名目化/dev/mapper/loop0p2,并指定inode数,如下:
mkfs.ext4?/dev/mapper/loop0p2? -N 235000 (inode 数按照现实环境预计)
?
http://bbs.chinaunix.net/thread-2195775-1-1.html
2.6 inode与ln?
一个文件包罗著名称、内容和打点信息如权限或修改时刻。 打点信息就存放在Inode中,同时存放的尚有文件的长度,文件放在磁盘的位置等
查察一个文件的Inode号码 # ls -i 654076 test1??
我们用ln使一个链指向一个已有的文件。 #ln test1 test2 #ls -i 654076?test1??654076?test2 这里test1和test2的Inode号码是一样的。 也就是说他们着实是统一个文件(Inode号码沟通,也等于文件放在磁盘的位置一样),可是具有两个名称。 这样的甜头是可以让一个文件存在差异的目次,可能存在差异的名称。 对test1的修改也等于对test2的修改。 # ls -l -rw-r--r--??2 root root 29 Dec 29 17:32 test1 -rw-r--r--??2 root root 29 Dec 29 17:32 test2 ? ?? ?? ?? ?? ?~~ 这里的2,就暗示指向统一个Inode的链接数。
删掉test2 #ls -l -rw-r--r--??1 root root 29 Dec 29 17:32 test1
或者会有迷惑,既然test1和test2是统一个文件,为什么删除test2,test1还在呢? 在这种环境,删除test2只是删除了一条指向654076这个Inode的一个链接。 文件依然存在。只有当最后一条链被删除时,即指向Inode的链接数为0时,文件才被删除。
# ln /boot/grub/grub.conf /home/test/grub ln: creating hard link `grub‘ to `/boot/grub/grub.conf‘: Invalid cross-device link
在这里,我的体系分了/,/boot,中分区 ln有一个题目就是不能跨装备(分区可能文件子体系)建设链接,一是由于分区可以被mount和umount, 跨分区的硬链接在分区umount会带来一些贫困,其它每个分区的Inode值不沟通。
昨天望见有个帖说,除了swap区,可以把全部的磁盘分成一个区。 可是这样当一个分区呈现文件体系错误,也许全部的数据都没有了。 而分别多个分区,每个分区的Inode差异。纵然某个分区的数据错误,也不至于影响到整个体系。
跨装备建设链接,可以行使 #ln -s /test /home/test/test
# ls -li /test 13 -rw-r--r--??1 root root 0 Dec 29 17:45 /test
# ls -li /home/test/test 1697478 lrwxrwxrwx??1 root root 5 Dec 29 17:46 /home/test/test -> /test
这样就是一个软链接,它是可以跨装备的,在文件范例这里会表现l 可以看到它们的Inode号码是差异的,并且链接的数量别离各为1 因此它们并不是统一个文件。
在软链接的环境下,修改链接到的文件/home/test/test,也修改了被链接的文件/test。 但这种方法和硬链接是差异的。这是通过某种机制来实现同步。而不是统一个文件的修改。
删除链接到的文件,对被链接文件没有任何影响。 而删除被链接文件/test,链接到的文件依然存在,可是会闪烁,提醒被链接的文件不存在了 也不能读取该文件了 #rm /test # ls -il /home/test/test 1697478 lrwxrwxrwx??1 root root 5 Dec 29 17:51 /home/test/test -> /test # more /home/test/test /home/test/test: No such file or directory
究竟上/home/test/test是存在的,作为一种非凡的文件范例为l的文件。 只不外软链接的一些法则抉择了它不行读。
为了加深对文件Inode的领略,可以从mv和cp文件来声名:
# cp test1 test2 # ls -i 654076 test1??654081 test2
这两个文件Inode值纷歧样,cp的实质是复制建设了一个新文件
#mv??test1 test3 #ls -i 654076 test3
跟上面的较量,test1和test3的Inode是沟通。 以是mv只是变动了文件的名称,也等于会见文件的进口 它们是指向统一个位置磁盘上的文件。
可是假如mv一个文件到另一个分区。 如前面所讲,差异分区的Inode值是差异的。 # ls -il /root/fs/test 654076 -rw-r--r--??1 root root 29 Dec 29 17:32 /home/fs/test # mv test /boot/test # ls -il /boot/test 16 -rw-r--r--??1 root root 29 Dec 29 17:32 /boot/test
以是mv文件到差异的分区,是删除去原分区的文件之后在其它一个分区从头建设这个文件。 因此有了一个差异的Inode值。
2.7 调解Inode数目 其它,每个分区的Inode数量是有限的。 可以行使df -i来查察
# df -i Filesystem? ?? ?? ?? ?Inodes? ?IUsed? ?IFree IUse% Mounted on /dev/mapper/VolGroup00-LogVol00 ? ?? ?? ?? ?? ?? ?? ?1958400? ?97435 1860965? ? 5% / /dev/sda1? ?? ?? ?? ???26104? ?? ?32? ?26072? ? 1% /boot /dev/shm? ?? ?? ?? ?? ?23850? ?? ? 1? ?23849? ? 1% /dev/shm
当一个磁盘分区(文件子体系)的Inode被用光的时辰,是无法再建设文件的。 这种环境在邮件处事器可能BBS这种体系中轻易呈现,由于用户建设了许多小文件的环境。
要增进Inode的数目只能umount文件体系,然后用mke2fs呼吁来调解
#mke2fs.ext3 /dev/sda1 [ -N number-of-inodes ]? 直接指定必要的Inode数量 可能 #mke2fs.ext3 /dev/sda1 [ -i bytes-per-inode ] 调解字节/inode的比例,来到达增进建设inode数量标目标。 磁盘空间必然的环境下,虽然比例越小,能建设的Inode就越多
虽然假如你是只有很少可是很大的数据库文件。就可以调高bytes/inode的比例。 (更多的关于mke2fs的信息,本身去man)
不外留意。调解Inode相等于从头名目化了分区。原有的文件城市丢失 以是确实必要调解的话,先要备份数据; 可能在处事器搭建时预先配置好。
?
================================
http://www.eygle.com/archives/2007/07/inode_no_space_lefton_device.html
这是一则进修条记,详细题目ITPUB上提问的伴侣已经本身办理。 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|