initramfs - хороший ответ на проблему с идентификатором группы пользователей, разрешением проблемы.В вашей директории с исходным кодом ядра есть scripts / gen_initramfs_list.sh.
Этот скрипт позволяет вам создать архив initramfs из нескольких источников.Например, вы можете указать:
каталог: файлы и каталог, найденные в этом базовом каталоге, будут находиться в корне вашей файловой системы.
список файлов: это текстовый файл, очень полезный для создания каталогов, файлов и специальных файлов устройств.См. Пример ниже
Если вы работаете как пользователь без полномочий root, и ваши rootfs находятся в rootfsdir, то, вероятно, файл в rootfsdir принадлежит вам.gen_initramfs_list может перевести ваш uid, gid в 0, 0. Вот пример командной строки:
gen_initramfs_list -u $MYUID -o initramfs.gz rootfsdir/ device.txt
Где device.txt содержит:
# This is a very simple, default initramfs
dir /dev 0755 0 0
nod /dev/console 0600 0 0 c 5 1
dir /root 0700 0 0
# file /kinit usr/kinit/kinit 0755 0 0
# slink /init kinit 0755 0 0
Тогда вы можете использовать стандартный контроль версийдля вашего содержимого rootfsdir и добавьте файл device.txt под управлением версиями, и вот вы: содержимое и атрибут файла версионны :).
Я не знаю, можете ли вы изменить разрешение и uid / gid файла в источнике каталога через источник списка файлов, но это было бы логично.
Конечно, вы можете начать сминимальный корень fs, из которого вы монтируете существующий nfs_export.
Это распространенная проблема, и gen_initramfs_list является инструментом для ее решения.