Общий ресурс NFS: на устройстве не осталось места

Моя установка состоит из сервера, работающего под управлением Ubuntu 10.10, и устройства, работающего под управлением настроенного Linux. Устройство получает ядро ​​и монтирует корневую файловую систему с сервера, используя TFTP и NFS соответственно.

В моем файле экспорта у меня есть:

/export/rootfs 192.168.1.0/24(rw,no_root_squash,no_subtree_check,sync)

У меня есть файл, содержащий файловую систему EXT2, которую я монтирую на /export/rootfs:

mount -t ext2 -o loop TargetFS.ext2 /export/rootfs

Когда я загружаю свое устройство, во время инициализации на устройстве не остается места, хотя на нем есть место. Если я копирую содержимое TargetFS.ext2 в /export/rootfs вместо того, чтобы монтировать его, у меня нет этой проблемы.

Какие-нибудь мысли?

1 ответ

Решение

Вы монтируете файл TargetFS.ext2, используя драйвер обратной петли. В зависимости от местоположения и типа файла, вы можете смонтировать его с помощью -o rw,loop вместо просто -o loop, Несмотря на то, что вы монтируете свой файл в том же месте, где монтируете общий ресурс NFS, вы все равно пытаетесь записать изменения в файл.

Имейте в виду, что где бы файл ни находился, он должен быть доступен для записи и иметь достаточно места для размещения любых / всех изменений. Иногда файлы, которые вы можете смонтировать как loopback, по-прежнему не могут быть записаны из-за сжатия или чего-то еще... или вы решили, что не хотите записывать изменения в необработанный образ... Альтернатива - посмотреть на Файловая система "fan-out", которая позволит вам смонтировать одну файловую систему только для чтения... и 2-ю для чтения / записи сверху как "оверлей". mini_fo очень давно проделала это во многих встраиваемых устройствах, таких как openwrt. (изображение доступно только для чтения, а верхний диск наложен сверху, чтобы журналы и тому подобное имели место для записи)

Другие вопросы по тегам