之前安装NetBSD分配inode不太合理,导致inode用光了,差点重装系统,仔细想来*nix的超强扩展性不用我们如此费神重装系统重新格式化什么的。还好是在VirtualBox虚拟机下装的,在虚拟机关机之后给NetBSD虚拟机增加一块硬盘然后开启虚拟机。
这里我的老硬盘识别为/dev/wd0,新的是/dev/wd1,顺带说一下老硬盘我只有一个分区(/ 根分区),所以a和d没有了,这里我让整个/dev/wd1作为系统的e分区加入进来。下面是实践过程的记录。(#后一个空格表示后接root下执行的命令,#后跟中文是注释)
# disklabel -i -I /dev/wd1e partition:e Filesystem type [?][unused]:4.2BSD Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: Partition size ('$' for all remaining):$ partition:W Label disk [n]? y partition>Q # newfs -i 384 -O 2 /dev/rwd1e #注意这里是rwd1e而不是wd1e了。分配得到三百多万个inode,这下应该不愁了 # mount /dev/wd1e /mnt # cd /usr/pkgsrc # pax -rw -pe . /mnt #将文件和文件夹都镜像复制一份到/mnt下 # umount /mnt
然后编辑/etc/fstab添加一行 ‘/dev/wd1e /usr/pkgsrc ffs rw 1 2’ (不含单引号)
# shutdown now #进入单用户模式 # mv /usr/pkgsrc /usr/pkgsrc.old # mkdir /usr/pkgsrc
然后启动系统(输入exit退出单用户模式就会自动启动系统到正常模式下了)看看是不是一切okay,没问题的话就可以删掉/usr/pkgsrc.old这个备份文件夹了。
至于为什么我不建议把整个/usr单独挂载到其它分区,因为目前我完全不能适应其它的Shell,而bash是安装到/usr/pkg/bin下的,如果/usr和/不是在一个分区的话,单用户模式下是不能使用bash的,所以我还是只把占用indoe最多的pkgsrc文件夹挪走就可以了。