2017-08-31 183 views
-1

分割故障我工作的Ubuntu 17.04Buildroot裏面,2017年5月2日(我的配置:is here),並希望作爲引導程序GRUB2使用。GRUB2 - > Buildroot裏面:在蠐螬的BIOS設置

我建立的buildroot,我下面內建指令:

dd if=/dev/zero of=170831_disk_1.img bs=1M count=300 
cfdisk 170831_disk_1.img 
    dos -> primary & bootable & 0x83 
sudo losetup -f 170831_disk_1.img 
sudo partx -a /dev/loop0 
sudo mkfs.ext4 -L root /dev/loop0p1 
sudo mount /dev/loop0p1 /mnt 
sudo tar -C /mnt -xf rootfs.tar 
sudo umount /mnt 

和公正的情況下運行(完當前目錄後:/home/user/buildroot/buildroot-2017.05.02/輸出/圖像/ 170831/):

sudo ../../host/usr/sbin/grub-bios-setup -b ../../host/usr/lib/grub/i386-pc/boot.img -c grub.img -d . /dev/loop0 

而且我得到以下錯誤(詳細模式):

./output/host/usr/sbin/grub-bios-setup: info: cannot open `/boot/grub/device.map': No such file or directory. 
./output/host/usr/sbin/grub-bios-setup: info: Looking for /dev/loop0. 
./output/host/usr/sbin/grub-bios-setup: info: /dev/loop0 is a parent of /dev/loop0. 
./output/host/usr/sbin/grub-bios-setup: info: Looking for /dev/loop0. 
./output/host/usr/sbin/grub-bios-setup: info: /dev/loop0 is a parent of /dev/loop0. 
./output/host/usr/sbin/grub-bios-setup: info: transformed OS device `/dev/loop0' into GRUB device `hostdisk//dev/loop0'. 
./output/host/usr/sbin/grub-bios-setup: info: getting the size of ././output/host/usr/lib/grub/i386-pc/boot.img. 
./output/host/usr/sbin/grub-bios-setup: info: reading ././output/host/usr/lib/grub/i386-pc/boot.img. 
./output/host/usr/sbin/grub-bios-setup: info: getting the size of ././output/host/usr/lib/grub/i386-pc/boot.img. 
./output/host/usr/sbin/grub-bios-setup: info: getting the size of ././output/images/170831/grub.img. 
./output/host/usr/sbin/grub-bios-setup: info: reading ././output/images/170831/grub.img. 
./output/host/usr/sbin/grub-bios-setup: info: getting the size of ././output/images/170831/grub.img. 
./output/host/usr/sbin/grub-bios-setup: info: root is `(null)', dest is `hostdisk//dev/loop0'. 
./output/host/usr/sbin/grub-bios-setup: info: Opening dest. 
./output/host/usr/sbin/grub-bios-setup: info: the size of hostdisk//dev/loop0 is 512000. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to /dev. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to dri. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to snd. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to by-path. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to vfio. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to hugepages. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to mqueue. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to shm. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to ubuntu-vg. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to disk. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to by-label. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to by-uuid. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to by-partuuid. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to by-path. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to by-id. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to block. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to char. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to pts. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to bsg. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to mapper. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to input. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to by-path. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to by-id. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to bus. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to usb. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to 002. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to 001. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to net. 
./output/host/usr/sbin/grub-bios-setup: info: changing current directory to lightnvm. 
Segmentation fault (core dumped) 

回答

0

我沒有解決這個問題,但我找到了另一個解決方案。如果您需要安裝GRUB2的buildroot的,只是使用genimage,並按照指令:

partition boot { 
    in-partition-table = "no" 
    image = "boot.img" 
    offset = 0 
    size = 512 
    } 
    partition grub { 
    in-partition-table = "no" 
    image = "grub.img" 
    offset = 512 
    } 
} 

此實用程序將GRUB2寫入到存儲。只要確保在已經存在的分區之前已經有大約1Mb的空間。

現在適合我。

P.S.在IRC#buildroot中,我被建議再次重新編譯所有內容,然後 尋找錯誤。它根本沒有幫助。