Files
使用busybox複製根目錄樹
我有一個基於 TI DaVinci(類似於 OMAP 的 ARM 架構)的系統,該系統使用 TFTP 和 NFS 安裝的根文件系統進行網路引導,並試圖使其在沒有網路引導伺服器的情況下獨立引導。
基本方法是將核心映像複製到 NAND 快閃記憶體並將根文件系統複製到連接的 SATA 磁碟(NAND 快閃記憶體遠不足以容納整個系統),然後配置 u-boot 以從 NAND 快閃記憶體載入核心並通過一個適當的
root=
論據。我被困在復製文件系統的步驟上。 這個問題是相關的,但沒有任何建議有效,因為我只有
cp
和cpio
工具的busybox版本,並且--one-file-system
busybox不支持該選項。當我只有busybox提供的工具能力時,如何複製根文件系統?在 NFS 伺服器(執行 Ubuntu 的 x64 架構)上執行存檔創建命令然後在目標上解壓縮是否有幫助?
BusyBox
find
支持該-xdev
選項,因此您可以通過這種方式製作根文件系統的 cpio 存檔。與 tar 不同,cpio 在歸檔目錄時不會歸檔該目錄的內容。find . -xdev | cpio -H newc -o | { cd /mnt && cpio -m -i; }
不過,我不太明白您為什麼要從設備建構圖像。我希望在開發機器上使用您的建構腳本建構文件系統映像,並部署該映像。
我認為您可以使用
cp
. 來自busybox.net 網站:cp
Usage: cp [OPTION]... SOURCE DEST or: cp [OPTION]... SOURCE... DIRECTORY Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. Options: -a Same as -dpR -d Preserve links -p Preserve file attributes if possible -R Copy directories recursively
例子
$ cp -a / /mnt/newroot
柏油
如果
cp
無法處理任何設備,例如/dev/zero
我很確定它不能處理的設備,您也許可以使用tar
BusyBox 中也包含的設備。$ (cd /; tar cf - .)|(cd /mnt/newroot; tar pxvf -)