Назад | Перейти на главную страницу

Общий ресурс 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 вместо установки у меня этой проблемы нет.

Есть предположения?

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

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