如何在init期间挂载filesystem.git目录?

时间:2013-03-04 10:43:05

标签: linux git filesystems mount unpack

我有一个包含filesystem.git的可引导ISO文件,后者又包含这个结构:

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作为根文件系统的程序,但我不知道如何

任何人都可以解释,这是如何运作的?

3 个答案:

答案 0 :(得分:2)

显然webconverger已经创建了自定义fuse文件系统:https://github.com/Webconverger/git-fs。在我看来,这是他们分发更新的方式:执行git-fetch然后更新initramfs以将他们的git-fs文件系统指向新对象。您需要阅读sources(或只是询问其中一位开发人员......),以了解事情的确切运作方式。

答案 1 :(得分:0)

它不是一个文件系统,它是一个git存储库,所以不会这样安装。

据推测,它是从安装介质克隆到使用git clone安装的系统的根目录,然后删除.git目录,或者使用较低级别的git命令执行某些等效操作克隆它而不必费心在.git目录中创建存储库的本地副本。

答案 2 :(得分:0)

要回答具有相同问题的其他人的问题,您可以使用git-fsFUSE结合使用安装* .git目录,如Michael Wild所述。