2017-08-31 3 views
-1

Ich arbeite an Ubuntu 17.04 auf Buildroot-2017.05.02 (meine config: is here) und als Bootloader GRUB2 verwenden möchten.GRUB2 -> Buildroot: Segmentation fault in grub-BIOS-Setup

baute ich die buildroot und ich bin nach build-in-Anweisung:

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 

Und nach diesem Lauf (aktuelles Verzeichnis für alle Fälle: /home/user/buildroot/buildroot-2017.05.02/ Ausgabe/images/170831/):

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

Und ich bekomme die folgende Fehlermeldung (ausführlicher Modus):

./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) 

Antwort

0

Ich habe dieses Problem nicht gelöst, aber ich fand eine andere Lösung. Wenn Sie grub2 für buildroot installieren müssen, verwenden Sie einfach genimage und folgen Sie den Anweisungen:

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

dieses Dienstprogramm GRUB2 auf die Speicher schreiben. Seien Sie sicher, dass Sie etwa 1 MB vor Ihren bereits vorhandenen Partitionen haben.

Es funktioniert für mich jetzt.

P. S. in IRC#buildroot wurde mir geraten, alles neu zu kompilieren und nach Fehlern suchen. Es hat überhaupt nicht geholfen.