2017-02-11 86 views
0

運行我有2個問題:Buildroot裏面沒有root身份運行,不希望以root

  • 我不知道(從Buildroot裏面手冊目錄說明)undrestand:

    目標/含有幾乎爲目標完整的根文件系統:所需要的一切是除了設備文件存在於的/ dev /(Buildroot裏面不運行作爲根,不希望作爲root運行)

爲什麼buildroot的需要root權限才能創建/ dev

  • 我知道那是什麼buildroot的使用target產生images/rootfs.tar;是否使用tar或...進行簡單壓縮?你能幫我找到產生images/rootfs.tar的目標嗎? 在使用NFS的情況下,爲什麼我們不能直接使用的target文件夾根文件系統是什麼讓「untaring」 images/rootfs.tar不同於target

編號:http://free-electrons.com/~thomas/buildroot/manual/html/ch03.html

+1

(1)Buildroot是一個用於生成內核和根文件系統的工具,可以在普通用戶的主機系統上執行,而不需要超級用戶權限。 (2).tar是一個沒有壓縮的普通檔案。您可以使用'make menuconfig'過程來配置/指定壓縮(和/或文件系統映像)。您不要在'make' shell命令中指定它。 – sawdust

+0

@sawdust,感謝您的反饋,也許我的問題不是直截了當的。我需要知道的是爲什麼我們不能在buildroot手冊中使用'target'作爲rootfs,據說這是因爲它不包含'dev',因爲Buildroot沒有以root身份運行,所以爲什麼它需要root特權來創建它 – Mouin

回答

0

我不知道該undrestand(從Buildroot裏面手冊中的目錄說明):

Buildroot裏面,用於生成內核和根文件系統的工具,是在主機系統上作爲普通用戶,而不需要執行的超級用戶權限。


爲什麼buildroot的需要root權限才能創建/ dev

Buildroot裏面不使用超級用戶權限。


我知道那是什麼buildroot的使用目標生成圖像/ rootfs.tar;這是一個簡單的taror壓縮...?

.tar是一個沒有壓縮的普通壓縮文件。
您可以使用make menuconfig過程來配置/指定壓縮(和/或選擇文件系統映像)。


請你幫我看看,生成圖像/ rootfs.tar廠名目標是什麼?

您不要在使 shell命令指定。
您可以使用make menuconfig程序,通過可選壓縮(和/或選擇文件系統映像)來配置/指定tar和/或cpio存檔。


在使用NFS的情況下,爲什麼我們不能直接使用的目標文件夾爲根文件系統

因爲它是不適合作爲屋頂。
文件所有者&組不正確(這可能與NFS使用無關)。
文件權限可能不正確(例如,busybox二進制文件的setuid)。
/dev目錄沒有目標內核需要的最小設備節點。

代替所需的最小設備節點(例如console)時,目標目錄具有普通文件dev的

buildroot-2015.05/output/target$ ls -l dev 
total 4 
-rw--w--w- 1 me swdev 0 Sep 15 16:34 console 
lrwxrwxrwx 1 me swdev 10 Aug 14 2015 log -> ../tmp/log 
drwxrwxr-x 2 me swdev 4096 May 31 2015 pts 
$ 

當它期望的設備節點的目標內核不能使用這些文件。通過設備節點執行I/O,而不是通過這些文件嘗試進行普通的文件傳輸。

實際開發目錄應該是:

crw--w--w- 1 root root 5, 1 Sep 15 16:34 console 
lrwxrwxrwx 1 root root 10 Aug 14 2015 log -> ../tmp/log 
drwxr-xr-x 2 root root 4096 May 31 2015 pts 

是什麼讓 「untaring」 圖像/ rootfs.tar不同於目標

Buildroot裏面可以巧妙地創建條目設備節點,並在創建檔案(或文件系統映像)時將正確的所有者和組分配給每個文件名。
這只是生成適當格式的二進制數據,插入到寫入文件的實際存檔條目(或fs圖像)中。
僅在解壓縮文件系統映像(或裝入文件系統映像文件)時纔會將「數據」正確解釋爲設備節點。

+0

再次感謝,我只想詳細介紹一下:「Buildroot可以巧妙地爲設備節點創建條目」:在我看來,它是創建設備節點的內核[link](http://unix.stackexchange.com/問題/ 241173 /如何-是-DEV-Linux的文件創建)。 「將正確的所有者和組分配給每個文件名」:能否請你解釋一下腳本/ Makefile是由Buildroot完成的。 – Mouin

+0

如果你想詳細說明,那就花更多的精力去閱讀整個寫的句子。你和那個鏈接指的是實際的設備節點。 Buildroot僅爲設備節點構造** cpio **或** tar **歸檔項。您不能存檔實際的設備節點;您只能存檔有關節點的信息。更改所有者和組是歸檔程序的標準選項。 – sawdust

+0

順便說一句,聰明的人不會寫「*我想...」*的嬰兒短語。 – sawdust