Ramdisk 上的 "No space left on device" 问题 .

最近将基于ramdisk启动linux内核,运行到shell后,想mount SD卡,先创建 mnt目录:

      #.> mkdir mnt

      mkdir: can't create directory 'mnt': No space left on device

      于是运行df命令:

      #.> df

      Filesystem                Size      Used    Available   Use%    Mounted on

      /dev/root                  7.9M      5.5M      2.0M        73%      /
      ramdisk是8M的,显然空间是有剩余的。
 
      网上搜索 “No space left on device” 得一篇: 
      其中有以下一段文字:
       “但也正因为这种文件系统的结构,当你在 Linux 中进行 IO 操作的时候,需要的资源除了磁盘空间以外,还要有剩余的 Inode 才行。缺省情况下, Linux 在系统安装过程中按照1个 Inode 对应 2k 磁盘空间来计算每个分区的最大 Inode 数。一旦文件系统创建之后,每个分区可用 Inode 数就无法进行动态调整。”
 
 
      好吧,怀疑inode已经没有了。运行df -i命令:结果当前版本busybox 的df命令不支持 -i选项,也就是无法检查inode使用状态。
 
      回到PC端,在ubuntu下检查:
             sudo mount -o loop ramdisk.bin mnt/
             df -i mnt/
                Filesystem        Inodes   IUsed   IFree  IUse%   Mounted on
                /dev/loop0           496     496       0       100%    /mnt
       很明显了,确实是inode用光了。。
 
       那就重新生成ramdisk.bin吧:
             genext2fs -N 2000 -b 8192 -d mnt/ ramdisk-new.bin
 
       检验一下:
            sudo umount mnt/
            sudo mount -o loop ramdisk-new.bin mnt/
            df -i mnt/
            Filesystem            Inodes   IUsed   IFree   IUse%   Mounted on
            /dev/loop0              2000     507    1493    26%      mnt 
 
        貌似正常了。用新的ramdisk-new.bin来启动linux。再试验,OK。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值