2013-03-04 2 views
2

У меня есть загрузочный файл ISO, содержащий filesystem.git, который в своей очереди, содержит эту структуру:Как смонтировать каталог filesystem.git во время init?

dr-xr-xr-x 2 root root 2048 Mär 1 17:10 branches/ 
-r--r--r-- 1 root root 115 Mär 1 17:10 config 
-r--r--r-- 1 root root 73 Mär 1 17:10 description 
-r--r--r-- 1 root root 23 Mär 1 17:10 HEAD 
dr-xr-xr-x 2 root root 2048 Mär 1 17:10 hooks/ 
dr-xr-xr-x 2 root root 2048 Mär 1 17:10 info/ 
dr-xr-xr-x 4 root root 2048 Mär 1 17:10 objects/ 
-r--r--r-- 1 root root 85 Mär 1 17:10 packed-refs 
dr-xr-xr-x 4 root root 2048 Mär 1 17:10 refs/ 
-r--r--r-- 1 root root 82 Mär 1 17:10 shallow 

Там, кажется, упакованная Debian файловой системы в дереве объектов и initramfs изображения, кажется, есть процедура для распаковки и монтажа filesystem.git как корневая файловая система, но я не знаю, как это сделать.

Может ли кто-нибудь объяснить, как это работает?

+0

Это репозиторий системы управления версиями (git), поэтому мне кажется маловероятным, что 'initramfs' монтирует что-то из дерева' filesystem.git/objects'. Откуда у вас этот образ диска? Есть ли способ взглянуть на него? Что заставляет вас поверить, что он что-то монтирует внутри хранилища? –

+0

Да, вы можете скачать последнюю версию ISO [здесь] (http://build.webconverger.org/). Я хочу понять, как он работает внутри страны. Я понятия не имею, как файл system.git устанавливается в процессе загрузки, поскольку он упакован, но он должен. Я нашел что-то под названием 'git-fs' в изображении initrd, возможно, это инструмент, используемый для его монтирования. – JohnnyFromBF

ответ

0

Чтобы ответить на вопрос для других людей, имеющих такую ​​же проблему, вы можете установить каталог * .git с помощью git-fs в сочетании с FUSE, как указал Майкл Дик.

0

Это не файловая система, это репозиторий git, поэтому он не будет монтироваться как таковой.

Предположительно он клонирован из установочного носителя в корневой каталог системы устанавливается с git clone, а затем каталог .git удаляется, или еще какой-то эквивалент операция выполняется с помощью нижнего уровня мерзавец команды, чтобы клонировать его, не заботясь, чтобы создать локальная копия репозитория в каталоге .git.

2

По-видимому webconverger создали свою собственную fuse файловую систему: https://github.com/Webconverger/git-fs. Мне кажется, что они распространяют обновления: выполните команду git-fetch, а затем обновите initramfs, чтобы указать их файловую систему git-fs на новый объект. Вам нужно будет прочитать sources (или просто спросить одного из разработчиков ...), чтобы понять, как все работает.

Смежные вопросы