From c7058ec4d60387152537287950714b7743907400 Mon Sep 17 00:00:00 2001 From: Alessandro Elias Date: Tue, 16 Feb 2016 17:02:43 +0000 Subject: Starting merge with actual code. Signed-off-by: Alessandro Elias --- builder/build-initramfs.sh | 2 +- builder/hd-boot/.dialog_warnrc | 144 ++++++ builder/hd-boot/common-lib.sh | 66 +++ builder/hd-boot/dnbd3-conf/alt-servers | 1 + builder/hd-boot/dnbd3-conf/server.conf | 38 ++ builder/hd-boot/etc/cmdline.d/net.conf | 1 + builder/hd-boot/etc/conf.d/debug.conf | 2 + builder/hd-boot/grub/etc/default/grub | 35 ++ builder/hd-boot/grub/etc/grub.d/00_header | 390 ++++++++++++++++ builder/hd-boot/grub/etc/grub.d/05_debian_theme | 192 ++++++++ builder/hd-boot/grub/etc/grub.d/10_linux | 367 +++++++++++++++ builder/hd-boot/grub/etc/grub.d/20_linux_xen | 288 ++++++++++++ builder/hd-boot/grub/etc/grub.d/30_os-prober | 371 +++++++++++++++ builder/hd-boot/grub/etc/grub.d/30_uefi-firmware | 46 ++ builder/hd-boot/grub/etc/grub.d/40_custom | 5 + builder/hd-boot/grub/etc/grub.d/41_custom | 9 + builder/hd-boot/grub/etc/grub.d/README | 11 + builder/hd-boot/grub/usr/bin/grub-editenv | Bin 0 -> 226640 bytes builder/hd-boot/grub/usr/bin/grub-mkrelpath | Bin 0 -> 222032 bytes builder/hd-boot/grub/usr/bin/grub-ntldr-img | Bin 0 -> 31920 bytes builder/hd-boot/grub/usr/bin/grub-script-check | Bin 0 -> 248464 bytes builder/hd-boot/grub/usr/bin/linux-boot-prober | 61 +++ builder/hd-boot/grub/usr/bin/os-prober | 166 +++++++ .../hd-boot/grub/usr/lib/grub/grub-mkconfig_lib | 1 + .../grub/usr/lib/grub/i386-pc/915resolution.mod | Bin 0 -> 7816 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/acpi.mod | Bin 0 -> 10112 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/adler32.mod | Bin 0 -> 1380 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/affs.mod | Bin 0 -> 5696 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/afs.mod | Bin 0 -> 6804 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/ahci.mod | Bin 0 -> 15580 bytes .../grub/usr/lib/grub/i386-pc/all_video.mod | Bin 0 -> 704 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/aout.mod | Bin 0 -> 1104 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/archelp.mod | Bin 0 -> 3032 bytes .../grub/usr/lib/grub/i386-pc/at_keyboard.mod | Bin 0 -> 4260 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/ata.mod | Bin 0 -> 5684 bytes .../grub/usr/lib/grub/i386-pc/backtrace.mod | Bin 0 -> 1712 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/bfs.mod | Bin 0 -> 7316 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/biosdisk.mod | Bin 0 -> 4648 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/bitmap.mod | Bin 0 -> 2320 bytes .../grub/usr/lib/grub/i386-pc/bitmap_scale.mod | Bin 0 -> 3688 bytes .../grub/usr/lib/grub/i386-pc/blocklist.mod | Bin 0 -> 2232 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/boot.img | Bin 0 -> 512 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/boot.mod | Bin 0 -> 2508 bytes .../grub/usr/lib/grub/i386-pc/boot_hybrid.img | Bin 0 -> 512 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/bsd.mod | Bin 0 -> 29952 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/btrfs.mod | Bin 0 -> 14492 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/bufio.mod | Bin 0 -> 2164 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/cat.mod | Bin 0 -> 2980 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/cbfs.mod | Bin 0 -> 3856 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/cbls.mod | Bin 0 -> 3656 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/cbmemc.mod | Bin 0 -> 2456 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/cbtable.mod | Bin 0 -> 1144 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/cbtime.mod | Bin 0 -> 2628 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/cdboot.img | Bin 0 -> 2048 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/chain.mod | Bin 0 -> 3572 bytes .../grub/usr/lib/grub/i386-pc/cmdline_cat_test.mod | Bin 0 -> 3088 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/cmosdump.mod | Bin 0 -> 1284 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/cmostest.mod | Bin 0 -> 1900 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/cmp.mod | Bin 0 -> 2056 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/command.lst | 199 ++++++++ builder/hd-boot/grub/usr/lib/grub/i386-pc/config.h | 64 +++ .../grub/usr/lib/grub/i386-pc/configfile.mod | Bin 0 -> 2352 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/cpio.mod | Bin 0 -> 2756 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/cpio_be.mod | Bin 0 -> 2848 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/cpuid.mod | Bin 0 -> 1792 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/crc64.mod | Bin 0 -> 1688 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/crypto.lst | 45 ++ .../hd-boot/grub/usr/lib/grub/i386-pc/crypto.mod | Bin 0 -> 4960 bytes .../grub/usr/lib/grub/i386-pc/cryptodisk.mod | Bin 0 -> 10012 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/cs5536.mod | Bin 0 -> 3948 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/date.mod | Bin 0 -> 2244 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/datehook.mod | Bin 0 -> 1860 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/datetime.mod | Bin 0 -> 1336 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/disk.mod | Bin 0 -> 2480 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/diskboot.img | Bin 0 -> 512 bytes .../grub/usr/lib/grub/i386-pc/diskfilter.mod | Bin 0 -> 9920 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/div_test.mod | Bin 0 -> 3900 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/dm_nv.mod | Bin 0 -> 1900 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/drivemap.mod | Bin 0 -> 5424 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/echo.mod | Bin 0 -> 2032 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/efiemu.mod | Bin 0 -> 24000 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/efiemu32.o | Bin 0 -> 7624 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/efiemu64.o | Bin 0 -> 11448 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/ehci.mod | Bin 0 -> 15832 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/elf.mod | Bin 0 -> 5172 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/eval.mod | Bin 0 -> 1516 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/exfat.mod | Bin 0 -> 5548 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/exfctest.mod | Bin 0 -> 1536 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/ext2.mod | Bin 0 -> 5616 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/extcmd.mod | Bin 0 -> 4616 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/fat.mod | Bin 0 -> 5700 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/file.mod | Bin 0 -> 16032 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/font.mod | Bin 0 -> 12560 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/freedos.mod | Bin 0 -> 2724 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/fs.lst | 36 ++ .../hd-boot/grub/usr/lib/grub/i386-pc/fshelp.mod | Bin 0 -> 2624 bytes .../grub/usr/lib/grub/i386-pc/functional_test.mod | Bin 0 -> 89824 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/g2hdr.bin | Bin 0 -> 512 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/g2hdr.img | Bin 0 -> 512 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/g2ldr.img | Bin 0 -> 10240 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/g2ldr.mbr | Bin 0 -> 8192 bytes .../grub/usr/lib/grub/i386-pc/gcry_arcfour.mod | Bin 0 -> 1720 bytes .../grub/usr/lib/grub/i386-pc/gcry_blowfish.mod | Bin 0 -> 8156 bytes .../grub/usr/lib/grub/i386-pc/gcry_camellia.mod | Bin 0 -> 33992 bytes .../grub/usr/lib/grub/i386-pc/gcry_cast5.mod | Bin 0 -> 16672 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/gcry_crc.mod | Bin 0 -> 2984 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/gcry_des.mod | Bin 0 -> 19432 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/gcry_dsa.mod | Bin 0 -> 2356 bytes .../grub/usr/lib/grub/i386-pc/gcry_idea.mod | Bin 0 -> 3016 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/gcry_md4.mod | Bin 0 -> 3200 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/gcry_md5.mod | Bin 0 -> 3796 bytes .../grub/usr/lib/grub/i386-pc/gcry_rfc2268.mod | Bin 0 -> 2532 bytes .../grub/usr/lib/grub/i386-pc/gcry_rijndael.mod | Bin 0 -> 19016 bytes .../grub/usr/lib/grub/i386-pc/gcry_rmd160.mod | Bin 0 -> 8136 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/gcry_rsa.mod | Bin 0 -> 2148 bytes .../grub/usr/lib/grub/i386-pc/gcry_seed.mod | Bin 0 -> 15424 bytes .../grub/usr/lib/grub/i386-pc/gcry_serpent.mod | Bin 0 -> 16256 bytes .../grub/usr/lib/grub/i386-pc/gcry_sha1.mod | Bin 0 -> 7576 bytes .../grub/usr/lib/grub/i386-pc/gcry_sha256.mod | Bin 0 -> 4352 bytes .../grub/usr/lib/grub/i386-pc/gcry_sha512.mod | Bin 0 -> 9348 bytes .../grub/usr/lib/grub/i386-pc/gcry_tiger.mod | Bin 0 -> 12672 bytes .../grub/usr/lib/grub/i386-pc/gcry_twofish.mod | Bin 0 -> 37556 bytes .../grub/usr/lib/grub/i386-pc/gcry_whirlpool.mod | Bin 0 -> 24928 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/gdb.mod | Bin 0 -> 25300 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/geli.mod | Bin 0 -> 5832 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/gettext.mod | Bin 0 -> 4980 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/gfxmenu.mod | Bin 0 -> 39144 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/gfxterm.mod | Bin 0 -> 10036 bytes .../usr/lib/grub/i386-pc/gfxterm_background.mod | Bin 0 -> 2936 bytes .../grub/usr/lib/grub/i386-pc/gfxterm_menu.mod | Bin 0 -> 5032 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/gptsync.mod | Bin 0 -> 3884 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/grldr.img | Bin 0 -> 10240 bytes .../grub/usr/lib/grub/i386-pc/grub-bios-setup | Bin 0 -> 769256 bytes .../grub/usr/lib/grub/i386-pc/grub-ntldr-img | Bin 0 -> 31920 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/gzio.mod | Bin 0 -> 8336 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/halt.mod | Bin 0 -> 4388 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/hashsum.mod | Bin 0 -> 5284 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/hdparm.mod | Bin 0 -> 7292 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/hello.mod | Bin 0 -> 1276 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/help.mod | Bin 0 -> 2636 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/hexdump.mod | Bin 0 -> 3192 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/hfs.mod | Bin 0 -> 7252 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/hfsplus.mod | Bin 0 -> 7640 bytes .../grub/usr/lib/grub/i386-pc/hfspluscomp.mod | Bin 0 -> 3068 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/http.mod | Bin 0 -> 5620 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/hwmatch.mod | Bin 0 -> 47276 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/iorw.mod | Bin 0 -> 2888 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/iso9660.mod | Bin 0 -> 8612 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/jfs.mod | Bin 0 -> 6156 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/jpeg.mod | Bin 0 -> 6304 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/kernel.img | Bin 0 -> 28052 bytes .../grub/usr/lib/grub/i386-pc/keylayouts.mod | Bin 0 -> 5060 bytes .../grub/usr/lib/grub/i386-pc/keystatus.mod | Bin 0 -> 2020 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/ldm.mod | Bin 0 -> 6608 bytes .../usr/lib/grub/i386-pc/legacy_password_test.mod | Bin 0 -> 14536 bytes .../grub/usr/lib/grub/i386-pc/legacycfg.mod | Bin 0 -> 29736 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/linux.mod | Bin 0 -> 13184 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/linux16.mod | Bin 0 -> 7984 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/lnxboot.img | Bin 0 -> 1024 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/loadenv.mod | Bin 0 -> 5932 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/loopback.mod | Bin 0 -> 3012 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/ls.mod | Bin 0 -> 4112 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/lsacpi.mod | Bin 0 -> 4852 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/lsapm.mod | Bin 0 -> 2352 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/lsmmap.mod | Bin 0 -> 1860 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/lspci.mod | Bin 0 -> 4892 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/luks.mod | Bin 0 -> 6688 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/lvm.mod | Bin 0 -> 6776 bytes .../grub/usr/lib/grub/i386-pc/lzma_decompress.img | Bin 0 -> 2880 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/lzopio.mod | Bin 0 -> 8820 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/macbless.mod | Bin 0 -> 3376 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/macho.mod | Bin 0 -> 7604 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/mda_text.mod | Bin 0 -> 2096 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/mdraid09.mod | Bin 0 -> 2020 bytes .../grub/usr/lib/grub/i386-pc/mdraid09_be.mod | Bin 0 -> 2088 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/mdraid1x.mod | Bin 0 -> 2036 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/memdisk.mod | Bin 0 -> 2060 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/memrw.mod | Bin 0 -> 2908 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/minicmd.mod | Bin 0 -> 3484 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/minix.mod | Bin 0 -> 3572 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/minix2.mod | Bin 0 -> 3644 bytes .../grub/usr/lib/grub/i386-pc/minix2_be.mod | Bin 0 -> 3808 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/minix3.mod | Bin 0 -> 3604 bytes .../grub/usr/lib/grub/i386-pc/minix3_be.mod | Bin 0 -> 3760 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/minix_be.mod | Bin 0 -> 3696 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/mmap.mod | Bin 0 -> 8572 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/moddep.lst | 259 +++++++++++ .../hd-boot/grub/usr/lib/grub/i386-pc/modinfo.sh | 36 ++ .../hd-boot/grub/usr/lib/grub/i386-pc/morse.mod | Bin 0 -> 2436 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/mpi.mod | Bin 0 -> 28120 bytes .../grub/usr/lib/grub/i386-pc/msdospart.mod | Bin 0 -> 2516 bytes .../grub/usr/lib/grub/i386-pc/multiboot.mod | Bin 0 -> 13124 bytes .../grub/usr/lib/grub/i386-pc/multiboot2.mod | Bin 0 -> 13624 bytes .../grub/usr/lib/grub/i386-pc/nativedisk.mod | Bin 0 -> 4116 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/net.mod | Bin 0 -> 45932 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/newc.mod | Bin 0 -> 3016 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/nilfs2.mod | Bin 0 -> 6748 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/normal.mod | Bin 0 -> 115756 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/ntfs.mod | Bin 0 -> 9856 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/ntfscomp.mod | Bin 0 -> 4464 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/ntldr.mod | Bin 0 -> 2616 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/odc.mod | Bin 0 -> 2832 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/offsetio.mod | Bin 0 -> 1580 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/ohci.mod | Bin 0 -> 10484 bytes .../grub/usr/lib/grub/i386-pc/part_acorn.mod | Bin 0 -> 1756 bytes .../grub/usr/lib/grub/i386-pc/part_amiga.mod | Bin 0 -> 1960 bytes .../grub/usr/lib/grub/i386-pc/part_apple.mod | Bin 0 -> 2220 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/part_bsd.mod | Bin 0 -> 2852 bytes .../grub/usr/lib/grub/i386-pc/part_dfly.mod | Bin 0 -> 1840 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/part_dvh.mod | Bin 0 -> 1564 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/part_gpt.mod | Bin 0 -> 2460 bytes .../grub/usr/lib/grub/i386-pc/part_msdos.mod | Bin 0 -> 2396 bytes .../grub/usr/lib/grub/i386-pc/part_plan.mod | Bin 0 -> 1856 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/part_sun.mod | Bin 0 -> 1608 bytes .../grub/usr/lib/grub/i386-pc/part_sunpc.mod | Bin 0 -> 1684 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/partmap.lst | 11 + .../hd-boot/grub/usr/lib/grub/i386-pc/parttool.lst | 1 + .../hd-boot/grub/usr/lib/grub/i386-pc/parttool.mod | Bin 0 -> 4656 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/password.mod | Bin 0 -> 1964 bytes .../grub/usr/lib/grub/i386-pc/password_pbkdf2.mod | Bin 0 -> 2880 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/pata.mod | Bin 0 -> 4824 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/pbkdf2.mod | Bin 0 -> 1528 bytes .../grub/usr/lib/grub/i386-pc/pbkdf2_test.mod | Bin 0 -> 2232 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/pci.mod | Bin 0 -> 1460 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/pcidump.mod | Bin 0 -> 2524 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/plan9.mod | Bin 0 -> 6344 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/play.mod | Bin 0 -> 2476 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/png.mod | Bin 0 -> 7464 bytes .../grub/usr/lib/grub/i386-pc/priority_queue.mod | Bin 0 -> 1636 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/probe.mod | Bin 0 -> 2704 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/procfs.mod | Bin 0 -> 2184 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/progress.mod | Bin 0 -> 2132 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/pxe.mod | Bin 0 -> 3880 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/pxeboot.img | Bin 0 -> 1024 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/pxechain.mod | Bin 0 -> 2728 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/raid5rec.mod | Bin 0 -> 1468 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/raid6rec.mod | Bin 0 -> 2240 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/read.mod | Bin 0 -> 1512 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/reboot.mod | Bin 0 -> 1788 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/regexp.mod | Bin 0 -> 51128 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/reiserfs.mod | Bin 0 -> 8952 bytes .../grub/usr/lib/grub/i386-pc/relocator.mod | Bin 0 -> 14944 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/romfs.mod | Bin 0 -> 4280 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/scsi.mod | Bin 0 -> 4780 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/search.mod | Bin 0 -> 3688 bytes .../grub/usr/lib/grub/i386-pc/search_fs_file.mod | Bin 0 -> 3288 bytes .../grub/usr/lib/grub/i386-pc/search_fs_uuid.mod | Bin 0 -> 3240 bytes .../grub/usr/lib/grub/i386-pc/search_label.mod | Bin 0 -> 3184 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/sendkey.mod | Bin 0 -> 7172 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/serial.mod | Bin 0 -> 7740 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/setjmp.mod | Bin 0 -> 708 bytes .../grub/usr/lib/grub/i386-pc/setjmp_test.mod | Bin 0 -> 1772 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/setpci.mod | Bin 0 -> 5388 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/sfs.mod | Bin 0 -> 5212 bytes .../grub/usr/lib/grub/i386-pc/signature_test.mod | Bin 0 -> 6480 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/sleep.mod | Bin 0 -> 2336 bytes .../grub/usr/lib/grub/i386-pc/sleep_test.mod | Bin 0 -> 2388 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/spkmodem.mod | Bin 0 -> 2140 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/squash4.mod | Bin 0 -> 6924 bytes .../grub/usr/lib/grub/i386-pc/syslinuxcfg.mod | Bin 0 -> 17348 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/tar.mod | Bin 0 -> 3432 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/terminal.lst | 11 + .../hd-boot/grub/usr/lib/grub/i386-pc/terminal.mod | Bin 0 -> 4408 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/terminfo.mod | Bin 0 -> 11736 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/test.mod | Bin 0 -> 5216 bytes .../grub/usr/lib/grub/i386-pc/test_blockarg.mod | Bin 0 -> 1412 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/testload.mod | Bin 0 -> 2804 bytes .../grub/usr/lib/grub/i386-pc/testspeed.mod | Bin 0 -> 2388 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/tftp.mod | Bin 0 -> 5388 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/tga.mod | Bin 0 -> 4500 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/time.mod | Bin 0 -> 1576 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/tr.mod | Bin 0 -> 2460 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/trig.mod | Bin 0 -> 1756 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/true.mod | Bin 0 -> 1272 bytes .../grub/usr/lib/grub/i386-pc/truecrypt.mod | Bin 0 -> 3612 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/udf.mod | Bin 0 -> 7848 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs1.mod | Bin 0 -> 5512 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/ufs1_be.mod | Bin 0 -> 5880 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs2.mod | Bin 0 -> 5584 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/uhci.mod | Bin 0 -> 6740 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/usb.mod | Bin 0 -> 10596 bytes .../grub/usr/lib/grub/i386-pc/usb_keyboard.mod | Bin 0 -> 3896 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/usbms.mod | Bin 0 -> 7100 bytes .../grub/usr/lib/grub/i386-pc/usbserial_common.mod | Bin 0 -> 2128 bytes .../grub/usr/lib/grub/i386-pc/usbserial_ftdi.mod | Bin 0 -> 2420 bytes .../grub/usr/lib/grub/i386-pc/usbserial_pl2303.mod | Bin 0 -> 2760 bytes .../usr/lib/grub/i386-pc/usbserial_usbdebug.mod | Bin 0 -> 1604 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/usbtest.mod | Bin 0 -> 3664 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/vbe.mod | Bin 0 -> 9972 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/verify.mod | Bin 0 -> 11684 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/vga.mod | Bin 0 -> 5108 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/vga_text.mod | Bin 0 -> 2204 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/video.lst | 4 + .../hd-boot/grub/usr/lib/grub/i386-pc/video.mod | Bin 0 -> 6184 bytes .../grub/usr/lib/grub/i386-pc/video_bochs.mod | Bin 0 -> 5772 bytes .../grub/usr/lib/grub/i386-pc/video_cirrus.mod | Bin 0 -> 6040 bytes .../grub/usr/lib/grub/i386-pc/video_colors.mod | Bin 0 -> 5736 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/video_fb.mod | Bin 0 -> 21188 bytes .../grub/usr/lib/grub/i386-pc/videoinfo.mod | Bin 0 -> 4048 bytes .../grub/usr/lib/grub/i386-pc/videotest.mod | Bin 0 -> 4328 bytes .../usr/lib/grub/i386-pc/videotest_checksum.mod | Bin 0 -> 2452 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/xfs.mod | Bin 0 -> 6276 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu.mod | Bin 0 -> 27112 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/xnu_uuid.mod | Bin 0 -> 2204 bytes .../grub/usr/lib/grub/i386-pc/xnu_uuid_test.mod | Bin 0 -> 2084 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/xzio.mod | Bin 0 -> 15932 bytes builder/hd-boot/grub/usr/lib/grub/i386-pc/zfs.mod | Bin 0 -> 39688 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/zfscrypt.mod | Bin 0 -> 5528 bytes .../hd-boot/grub/usr/lib/grub/i386-pc/zfsinfo.mod | Bin 0 -> 6672 bytes .../grub/usr/lib/linux-boot-probes/50mounted-tests | 82 ++++ .../grub/usr/lib/linux-boot-probes/mounted/40grub | 107 +++++ .../grub/usr/lib/linux-boot-probes/mounted/40grub2 | 110 +++++ .../grub/usr/lib/linux-boot-probes/mounted/50lilo | 126 +++++ .../usr/lib/linux-boot-probes/mounted/90fallback | 53 +++ builder/hd-boot/grub/usr/lib/os-prober/newns | Bin 0 -> 6184 bytes .../hd-boot/grub/usr/lib/os-probes/50mounted-tests | 93 ++++ .../grub/usr/lib/os-probes/init/10filesystems | 39 ++ .../hd-boot/grub/usr/lib/os-probes/mounted/05efi | 71 +++ .../grub/usr/lib/os-probes/mounted/10freedos | 23 + .../hd-boot/grub/usr/lib/os-probes/mounted/10qnx | 21 + .../grub/usr/lib/os-probes/mounted/20macosx | 30 ++ .../grub/usr/lib/os-probes/mounted/20microsoft | 115 +++++ .../grub/usr/lib/os-probes/mounted/30utility | 33 ++ .../hd-boot/grub/usr/lib/os-probes/mounted/40lsb | 48 ++ .../hd-boot/grub/usr/lib/os-probes/mounted/70hurd | 16 + .../hd-boot/grub/usr/lib/os-probes/mounted/80minix | 28 ++ .../hd-boot/grub/usr/lib/os-probes/mounted/83haiku | 35 ++ .../grub/usr/lib/os-probes/mounted/90linux-distro | 138 ++++++ .../grub/usr/lib/os-probes/mounted/90solaris | 19 + .../grub/usr/lib/os-probes/mounted/efi/10elilo | 24 + .../grub/usr/lib/os-probes/mounted/efi/20microsoft | 28 ++ builder/hd-boot/grub/usr/sbin/grub-bios-setup | 1 + builder/hd-boot/grub/usr/sbin/grub-install | Bin 0 -> 966352 bytes builder/hd-boot/grub/usr/sbin/grub-macbless | Bin 0 -> 757000 bytes builder/hd-boot/grub/usr/sbin/grub-mkconfig | 306 ++++++++++++ builder/hd-boot/grub/usr/sbin/grub-mkdevicemap | Bin 0 -> 193360 bytes builder/hd-boot/grub/usr/sbin/grub-probe | Bin 0 -> 767176 bytes builder/hd-boot/grub/usr/sbin/grub-reboot | 144 ++++++ builder/hd-boot/grub/usr/sbin/grub-set-default | 137 ++++++ builder/hd-boot/grub/usr/share/grub/ascii.h | 132 ++++++ builder/hd-boot/grub/usr/share/grub/ascii.pf2 | Bin 0 -> 5000 bytes .../grub/usr/share/grub/default/grub.md5sum | 3 + builder/hd-boot/grub/usr/share/grub/euro.pf2 | Bin 0 -> 52151 bytes .../hd-boot/grub/usr/share/grub/grub-mkconfig_lib | 395 ++++++++++++++++ builder/hd-boot/grub/usr/share/grub/unicode.pf2 | Bin 0 -> 2400500 bytes builder/hd-boot/grub/usr/share/grub/widthspec.h | 516 +++++++++++++++++++++ .../usr/share/locale/de_CH/LC_MESSAGES/grub.mo | Bin 0 -> 105444 bytes .../usr/share/locale/en_US/LC_MESSAGES/mit-krb5.mo | Bin 0 -> 410 bytes .../share/locale/pt_BR/LC_MESSAGES/Linux-PAM.mo | Bin 0 -> 11385 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/adduser.mo | Bin 0 -> 19633 bytes .../share/locale/pt_BR/LC_MESSAGES/apt-utils.mo | Bin 0 -> 9554 bytes .../grub/usr/share/locale/pt_BR/LC_MESSAGES/apt.mo | Bin 0 -> 23698 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/bash.mo | Bin 0 -> 9580 bytes .../share/locale/pt_BR/LC_MESSAGES/console-data.mo | Bin 0 -> 3316 bytes .../share/locale/pt_BR/LC_MESSAGES/coreutils.mo | Bin 0 -> 169366 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/cpio.mo | Bin 0 -> 3693 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/debconf.mo | Bin 0 -> 10588 bytes .../share/locale/pt_BR/LC_MESSAGES/debian-tasks.mo | Bin 0 -> 431 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/dialog.mo | Bin 0 -> 1282 bytes .../share/locale/pt_BR/LC_MESSAGES/diffutils.mo | Bin 0 -> 6754 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/dnsmasq.mo | Bin 0 -> 454 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/dpkg.mo | Bin 0 -> 59936 bytes .../share/locale/pt_BR/LC_MESSAGES/findutils.mo | Bin 0 -> 5487 bytes .../share/locale/pt_BR/LC_MESSAGES/gdk-pixbuf.mo | Bin 0 -> 22923 bytes .../locale/pt_BR/LC_MESSAGES/gettext-runtime.mo | Bin 0 -> 9603 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/glib20.mo | Bin 0 -> 100078 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/gnupg.mo | Bin 0 -> 37351 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/gprof.mo | Bin 0 -> 9984 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/grep.mo | Bin 0 -> 17282 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/grub.mo | Bin 0 -> 66071 bytes .../locale/pt_BR/LC_MESSAGES/install-keymap.mo | Bin 0 -> 2765 bytes .../locale/pt_BR/LC_MESSAGES/libapt-inst1.5.mo | Bin 0 -> 3854 bytes .../locale/pt_BR/LC_MESSAGES/libapt-pkg4.12.mo | Bin 0 -> 15763 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/libc.mo | Bin 0 -> 82731 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/make.mo | Bin 0 -> 25786 bytes .../locale/pt_BR/LC_MESSAGES/man-db-gnulib.mo | Bin 0 -> 5094 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/man-db.mo | Bin 0 -> 7484 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/nano.mo | Bin 0 -> 42621 bytes .../share/locale/pt_BR/LC_MESSAGES/net-tools.mo | Bin 0 -> 41238 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/newt.mo | Bin 0 -> 536 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/opcodes.mo | Bin 0 -> 8467 bytes .../grub/usr/share/locale/pt_BR/LC_MESSAGES/sed.mo | Bin 0 -> 10316 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/shadow.mo | Bin 0 -> 59505 bytes .../locale/pt_BR/LC_MESSAGES/shared-mime-info.mo | Bin 0 -> 40414 bytes .../share/locale/pt_BR/LC_MESSAGES/sharutils.mo | Bin 0 -> 54087 bytes .../grub/usr/share/locale/pt_BR/LC_MESSAGES/tar.mo | Bin 0 -> 44748 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/tasksel.mo | Bin 0 -> 1251 bytes .../usr/share/locale/pt_BR/LC_MESSAGES/wget.mo | Bin 0 -> 38635 bytes .../locale/pt_BR/LC_MESSAGES/xdg-user-dirs.mo | Bin 0 -> 1543 bytes builder/hd-boot/grub/usr/share/os-prober/common.sh | 285 ++++++++++++ builder/hd-boot/hooks/gen-netfiles.sh | 43 ++ builder/hd-boot/hooks/get_root_part.sh | 68 +++ builder/hd-boot/hooks/ifup_lo.sh | 5 + builder/hd-boot/hooks/mount-root-device.sh | 9 + builder/hd-boot/hooks/partitioner.sh | 359 ++++++++++++++ .../hooks/prepare-kernel-command-line-parameter.sh | 28 ++ builder/hd-boot/hooks/prepare-root-part.sh | 201 ++++++++ builder/hd-boot/module-setup.sh | 63 +++ 398 files changed, 6795 insertions(+), 1 deletion(-) create mode 100644 builder/hd-boot/.dialog_warnrc create mode 100644 builder/hd-boot/common-lib.sh create mode 100644 builder/hd-boot/dnbd3-conf/alt-servers create mode 100644 builder/hd-boot/dnbd3-conf/server.conf create mode 100644 builder/hd-boot/etc/cmdline.d/net.conf create mode 100644 builder/hd-boot/etc/conf.d/debug.conf create mode 100644 builder/hd-boot/grub/etc/default/grub create mode 100755 builder/hd-boot/grub/etc/grub.d/00_header create mode 100755 builder/hd-boot/grub/etc/grub.d/05_debian_theme create mode 100755 builder/hd-boot/grub/etc/grub.d/10_linux create mode 100755 builder/hd-boot/grub/etc/grub.d/20_linux_xen create mode 100755 builder/hd-boot/grub/etc/grub.d/30_os-prober create mode 100755 builder/hd-boot/grub/etc/grub.d/30_uefi-firmware create mode 100755 builder/hd-boot/grub/etc/grub.d/40_custom create mode 100755 builder/hd-boot/grub/etc/grub.d/41_custom create mode 100644 builder/hd-boot/grub/etc/grub.d/README create mode 100755 builder/hd-boot/grub/usr/bin/grub-editenv create mode 100755 builder/hd-boot/grub/usr/bin/grub-mkrelpath create mode 100755 builder/hd-boot/grub/usr/bin/grub-ntldr-img create mode 100755 builder/hd-boot/grub/usr/bin/grub-script-check create mode 100755 builder/hd-boot/grub/usr/bin/linux-boot-prober create mode 100755 builder/hd-boot/grub/usr/bin/os-prober create mode 120000 builder/hd-boot/grub/usr/lib/grub/grub-mkconfig_lib create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/915resolution.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/acpi.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/adler32.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/affs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/afs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ahci.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/all_video.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/aout.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/archelp.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/at_keyboard.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ata.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/backtrace.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/bfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/biosdisk.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/bitmap.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/bitmap_scale.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/blocklist.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/boot.img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/boot.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/boot_hybrid.img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/bsd.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/btrfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/bufio.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cat.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cbfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cbls.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cbmemc.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cbtable.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cbtime.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cdboot.img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/chain.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cmdline_cat_test.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cmosdump.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cmostest.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cmp.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/command.lst create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/config.h create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/configfile.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cpio.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cpio_be.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cpuid.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/crc64.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/crypto.lst create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/crypto.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cryptodisk.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/cs5536.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/date.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/datehook.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/datetime.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/disk.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/diskboot.img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/diskfilter.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/div_test.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/dm_nv.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/drivemap.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/echo.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu32.o create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu64.o create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ehci.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/elf.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/eval.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/exfat.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/exfctest.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ext2.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/extcmd.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/fat.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/file.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/font.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/freedos.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/fs.lst create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/fshelp.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/functional_test.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/g2hdr.bin create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/g2hdr.img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/g2ldr.img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/g2ldr.mbr create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_arcfour.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_blowfish.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_camellia.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_cast5.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_crc.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_des.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_dsa.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_idea.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_md4.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_md5.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rfc2268.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rijndael.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rmd160.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rsa.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_seed.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_serpent.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha1.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha256.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha512.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_tiger.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_twofish.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_whirlpool.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gdb.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/geli.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gettext.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxmenu.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm_background.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm_menu.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gptsync.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/grldr.img create mode 100755 builder/hd-boot/grub/usr/lib/grub/i386-pc/grub-bios-setup create mode 100755 builder/hd-boot/grub/usr/lib/grub/i386-pc/grub-ntldr-img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/gzio.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/halt.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/hashsum.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/hdparm.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/hello.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/help.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/hexdump.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/hfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/hfsplus.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/hfspluscomp.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/http.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/hwmatch.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/iorw.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/iso9660.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/jfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/jpeg.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/kernel.img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/keylayouts.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/keystatus.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ldm.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/legacy_password_test.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/legacycfg.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/linux.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/linux16.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/lnxboot.img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/loadenv.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/loopback.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ls.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/lsacpi.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/lsapm.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/lsmmap.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/lspci.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/luks.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/lvm.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/lzma_decompress.img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/lzopio.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/macbless.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/macho.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/mda_text.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid09.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid09_be.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid1x.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/memdisk.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/memrw.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/minicmd.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/minix.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/minix2.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/minix2_be.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/minix3.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/minix3_be.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/minix_be.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/mmap.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/moddep.lst create mode 100755 builder/hd-boot/grub/usr/lib/grub/i386-pc/modinfo.sh create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/morse.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/mpi.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/msdospart.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/multiboot.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/multiboot2.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/nativedisk.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/net.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/newc.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/nilfs2.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/normal.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ntfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ntfscomp.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ntldr.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/odc.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/offsetio.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ohci.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_acorn.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_amiga.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_apple.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_bsd.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_dfly.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_dvh.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_gpt.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_msdos.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_plan.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_sun.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/part_sunpc.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/partmap.lst create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/parttool.lst create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/parttool.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/password.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/password_pbkdf2.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/pata.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/pbkdf2.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/pbkdf2_test.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/pci.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/pcidump.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/plan9.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/play.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/png.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/priority_queue.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/probe.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/procfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/progress.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/pxe.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/pxeboot.img create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/pxechain.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/raid5rec.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/raid6rec.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/read.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/reboot.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/regexp.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/reiserfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/relocator.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/romfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/scsi.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/search.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/search_fs_file.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/search_fs_uuid.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/search_label.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/sendkey.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/serial.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/setjmp.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/setjmp_test.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/setpci.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/sfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/signature_test.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/sleep.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/sleep_test.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/spkmodem.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/squash4.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/syslinuxcfg.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/tar.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/terminal.lst create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/terminal.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/terminfo.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/test.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/test_blockarg.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/testload.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/testspeed.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/tftp.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/tga.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/time.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/tr.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/trig.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/true.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/truecrypt.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/udf.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs1.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs1_be.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs2.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/uhci.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/usb.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/usb_keyboard.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/usbms.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_common.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_ftdi.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_pl2303.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_usbdebug.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/usbtest.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/vbe.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/verify.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/vga.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/vga_text.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/video.lst create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/video.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/video_bochs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/video_cirrus.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/video_colors.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/video_fb.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/videoinfo.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/videotest.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/videotest_checksum.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/xfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu_uuid.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu_uuid_test.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/xzio.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/zfs.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/zfscrypt.mod create mode 100644 builder/hd-boot/grub/usr/lib/grub/i386-pc/zfsinfo.mod create mode 100755 builder/hd-boot/grub/usr/lib/linux-boot-probes/50mounted-tests create mode 100755 builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/40grub create mode 100755 builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/40grub2 create mode 100755 builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/50lilo create mode 100755 builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/90fallback create mode 100755 builder/hd-boot/grub/usr/lib/os-prober/newns create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/50mounted-tests create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/init/10filesystems create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/05efi create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/10freedos create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/10qnx create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/20macosx create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/20microsoft create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/30utility create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/40lsb create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/70hurd create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/80minix create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/83haiku create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/90linux-distro create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/90solaris create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/efi/10elilo create mode 100755 builder/hd-boot/grub/usr/lib/os-probes/mounted/efi/20microsoft create mode 120000 builder/hd-boot/grub/usr/sbin/grub-bios-setup create mode 100755 builder/hd-boot/grub/usr/sbin/grub-install create mode 100755 builder/hd-boot/grub/usr/sbin/grub-macbless create mode 100755 builder/hd-boot/grub/usr/sbin/grub-mkconfig create mode 100755 builder/hd-boot/grub/usr/sbin/grub-mkdevicemap create mode 100755 builder/hd-boot/grub/usr/sbin/grub-probe create mode 100755 builder/hd-boot/grub/usr/sbin/grub-reboot create mode 100755 builder/hd-boot/grub/usr/sbin/grub-set-default create mode 100644 builder/hd-boot/grub/usr/share/grub/ascii.h create mode 100644 builder/hd-boot/grub/usr/share/grub/ascii.pf2 create mode 100644 builder/hd-boot/grub/usr/share/grub/default/grub.md5sum create mode 100644 builder/hd-boot/grub/usr/share/grub/euro.pf2 create mode 100644 builder/hd-boot/grub/usr/share/grub/grub-mkconfig_lib create mode 100644 builder/hd-boot/grub/usr/share/grub/unicode.pf2 create mode 100644 builder/hd-boot/grub/usr/share/grub/widthspec.h create mode 100644 builder/hd-boot/grub/usr/share/locale/de_CH/LC_MESSAGES/grub.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/en_US/LC_MESSAGES/mit-krb5.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/Linux-PAM.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/adduser.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/apt-utils.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/apt.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/bash.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/console-data.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/coreutils.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/cpio.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/debconf.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/debian-tasks.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dialog.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/diffutils.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dnsmasq.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dpkg.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/findutils.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gdk-pixbuf.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/glib20.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gnupg.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gprof.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/grep.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/grub.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/install-keymap.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libapt-inst1.5.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libapt-pkg4.12.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libc.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/make.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/man-db-gnulib.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/man-db.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/nano.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/net-tools.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/newt.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/opcodes.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/sed.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/shadow.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/shared-mime-info.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/sharutils.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/tar.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/tasksel.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/wget.mo create mode 100644 builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/xdg-user-dirs.mo create mode 100644 builder/hd-boot/grub/usr/share/os-prober/common.sh create mode 100755 builder/hd-boot/hooks/gen-netfiles.sh create mode 100755 builder/hd-boot/hooks/get_root_part.sh create mode 100644 builder/hd-boot/hooks/ifup_lo.sh create mode 100755 builder/hd-boot/hooks/mount-root-device.sh create mode 100755 builder/hd-boot/hooks/partitioner.sh create mode 100755 builder/hd-boot/hooks/prepare-kernel-command-line-parameter.sh create mode 100755 builder/hd-boot/hooks/prepare-root-part.sh create mode 100755 builder/hd-boot/module-setup.sh diff --git a/builder/build-initramfs.sh b/builder/build-initramfs.sh index e69f88be..b7ed0e9e 100755 --- a/builder/build-initramfs.sh +++ b/builder/build-initramfs.sh @@ -460,7 +460,7 @@ _loglevel='' if [ "$verbose" == 'yes' ]; then _loglevel='--verbose' fi -_modules='dnbd3-rootfs' +_modules='dnbd3-rootfs hd-boot' if [ "$debug" == 'yes' ]; then _loglevel="$_loglevel --stdlog 4" _modules="$_modules i18n terminfo" diff --git a/builder/hd-boot/.dialog_warnrc b/builder/hd-boot/.dialog_warnrc new file mode 100644 index 00000000..08738b0f --- /dev/null +++ b/builder/hd-boot/.dialog_warnrc @@ -0,0 +1,144 @@ +# +# Run-time configuration file for dialog +# +# Automatically generated by "dialog --create-rc " +# +# +# Types of values: +# +# Number - +# String - "string" +# Boolean - +# Attribute - (foreground,background,highlight?) + +# Set aspect-ration. +aspect = 0 + +# Set separator (for multiple widgets output). +separate_widget = "" + +# Set tab-length (for textbox tab-conversion). +tab_len = 0 + +# Make tab-traversal for checklist, etc., include the list. +visit_items = OFF + +# Shadow dialog boxes? This also turns on color. +use_shadow = ON + +# Turn color support ON or OFF +use_colors = ON + +# Screen color +screen_color = (CYAN,RED,ON) + +# Shadow color +shadow_color = (BLACK,BLACK,ON) + +# Dialog box color +dialog_color = (BLACK,WHITE,ON) + +# Dialog box title color +title_color = (RED,WHITE,ON) + +# Dialog box border color +border_color = (WHITE,WHITE,ON) + +# Active button color +button_active_color = (WHITE,BLUE,ON) + +# Inactive button color +button_inactive_color = dialog_color + +# Active button key color +button_key_active_color = button_active_color + +# Inactive button key color +button_key_inactive_color = (RED,WHITE,OFF) + +# Active button label color +button_label_active_color = (YELLOW,BLUE,ON) + +# Inactive button label color +button_label_inactive_color = (BLACK,WHITE,ON) + +# Input box color +inputbox_color = dialog_color + +# Input box border color +inputbox_border_color = dialog_color + +# Search box color +searchbox_color = dialog_color + +# Search box title color +searchbox_title_color = title_color + +# Search box border color +searchbox_border_color = border_color + +# File position indicator color +position_indicator_color = title_color + +# Menu box color +menubox_color = dialog_color + +# Menu box border color +menubox_border_color = border_color + +# Item color +item_color = dialog_color + +# Selected item color +item_selected_color = button_active_color + +# Tag color +tag_color = title_color + +# Selected tag color +tag_selected_color = button_label_active_color + +# Tag key color +tag_key_color = button_key_inactive_color + +# Selected tag key color +tag_key_selected_color = (RED,BLUE,ON) + +# Check box color +check_color = dialog_color + +# Selected check box color +check_selected_color = button_active_color + +# Up arrow color +uarrow_color = (GREEN,WHITE,ON) + +# Down arrow color +darrow_color = uarrow_color + +# Item help-text color +itemhelp_color = (WHITE,BLACK,OFF) + +# Active form text color +form_active_text_color = button_active_color + +# Form text color +form_text_color = (WHITE,CYAN,ON) + +# Readonly form item color +form_item_readonly_color = (CYAN,WHITE,ON) + +# Dialog box gauge color +gauge_color = title_color + +# Dialog box border2 color +border2_color = dialog_color + +# Input box border2 color +inputbox_border2_color = dialog_color + +# Search box border2 color +searchbox_border2_color = dialog_color + +# Menu box border2 color +menubox_border2_color = dialog_color diff --git a/builder/hd-boot/common-lib.sh b/builder/hd-boot/common-lib.sh new file mode 100644 index 00000000..0ab2229c --- /dev/null +++ b/builder/hd-boot/common-lib.sh @@ -0,0 +1,66 @@ +PREFIX_DIALRC=/usr/lib/rebash +DNBD3_CONFIG_DIR=/etc/dnbd3 +CONFIG_FILE_NAME="config" + +perror () { + if [[ "$1" == .dialog_[a-zA-Z]*$rc ]]; then + export DIALOGRC="${PREFIX_DIALRC}/${1}" + shift + fi + + msg=$(echo "$@") + dialog --title "ERROR" --stdout --msgbox "$msg" 15 60 + ret=$? + export DIALOGRC= + + return $ret +} + +pwarning () { + if [[ "$1" == .dialog_[a-zA-Z]*$rc ]]; then + export DIALOGRC="${PREFIX_DIALRC}/${1}" + shift + fi + + msg=$(echo "$@") + dialog --title "WARNING" --stdout --msgbox "$msg" 15 60 + ret=$? + export DIALOGRC= + + return $ret +} + +pquestion () { + if [[ "$1" == .dialog_[a-zA-Z]*$rc ]]; then + export DIALOGRC="${PREFIX_DIALRC}/${1}" + shift + fi + title="$1" + shift + + msg=$(echo "$@") + dialog --title "$title" --stdout --defaultno --yesno "$msg" 15 60 + ret=$? + export DIALOGRC= + + return $ret +} + +pdebug () +{ + echo "$@" 1>&2 +} + +get_root_dir() +{ + local base_path + + base_path=$(cat "${DNBD3_CONFIG_DIR}/server.conf" | awk -F'=' '/basePath/ {print $2}') + [ "${base_path:0:1}" = "/" ] && base_path="${base_path:1}" + + echo "/${base_path%%/*}" +} + +get_cache_dir() +{ echo "$(cat ${DNBD3_CONFIG_DIR}/server.conf | awk -F'=' '/basePath/ {print $2}')"; } + diff --git a/builder/hd-boot/dnbd3-conf/alt-servers b/builder/hd-boot/dnbd3-conf/alt-servers new file mode 100644 index 00000000..59f35022 --- /dev/null +++ b/builder/hd-boot/dnbd3-conf/alt-servers @@ -0,0 +1 @@ +10.66.0.1 diff --git a/builder/hd-boot/dnbd3-conf/server.conf b/builder/hd-boot/dnbd3-conf/server.conf new file mode 100644 index 00000000..447ebe2c --- /dev/null +++ b/builder/hd-boot/dnbd3-conf/server.conf @@ -0,0 +1,38 @@ +[dnbd3] +; port to listen on (default: 5003) +listenPort=5003 +; relative root directory for images, ending in .r[1-9][0-9]* +basePath=/.dnbd3/cache +; artificial connection delay for connecting servers +serverPenalty=0 +; artificial connection delay for connecting clients +clientPenalty=0 +; is this server a proxy? if true, requests for non-existing images will be relayed to known alt-servers +isProxy=true +; Allow cache to be used even if there is no up link. +allowConnNoUplink=true +; if proxy is true and an image is incomplete, should idle bandwidth be used to replicate missing blocks? +backgroundReplication=false +; if true (which is the default), images will automatically be removed from the list if they can't be accessed +removeMissingImages=true +; timeout in ms for send/recv on connections to uplink servers (used for replication) +uplinkTimeout=10250 +; timeout in ms for send/recv on connections to clients (using an image on this server) +clientTimeout=15000 + +; Log related config +[logging] +; log file path and name +; protip: use SIGUSR2 to reopen log file +file=/run/log/dnbd3.log +; which type of messages to log to file +fileMask=ERROR WARNING MINOR INFO DEBUG1 DEBUG2 +; which to log to console (stdout) +consoleMask=ERROR WARNING MINOR INFO +; Valid types (warning: specifying invalid types will not yield an error!) +; ERROR Fatal error, server will terminate +; WARNING Major issue, something is broken but keep running +; MINOR Minor issue, more of a hickup than serious problem +; INFO Informational message +; DEBUG1 Debug information, used for medium verbosity +; DEBUG2 Used for debug messages that would show up a lot diff --git a/builder/hd-boot/etc/cmdline.d/net.conf b/builder/hd-boot/etc/cmdline.d/net.conf new file mode 100644 index 00000000..74cf3089 --- /dev/null +++ b/builder/hd-boot/etc/cmdline.d/net.conf @@ -0,0 +1 @@ +rd.neednet diff --git a/builder/hd-boot/etc/conf.d/debug.conf b/builder/hd-boot/etc/conf.d/debug.conf new file mode 100644 index 00000000..7bad341a --- /dev/null +++ b/builder/hd-boot/etc/conf.d/debug.conf @@ -0,0 +1,2 @@ +#export RD_DEBUG=yes +export DRACUT_QUIET=no diff --git a/builder/hd-boot/grub/etc/default/grub b/builder/hd-boot/grub/etc/default/grub new file mode 100644 index 00000000..629f571c --- /dev/null +++ b/builder/hd-boot/grub/etc/default/grub @@ -0,0 +1,35 @@ +# If you change this file, run 'update-grub' afterwards to update +# /boot/grub/grub.cfg. +# For full documentation of the options in this file, see: +# info -f grub -n 'Simple configuration' + +GRUB_DEFAULT=0 +GRUB_TIMEOUT=5 +GRUB_DISTRIBUTOR="OpenSLX" +GRUB_CMDLINE_LINUX_DEFAULT="" +GRUB_CMDLINE_LINUX="loglevel=3 slxsrv=10.66.0.1 slxbase=slx-local/ rd.shell rd.info log_buf_len=1M" + +#GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1" +#GRUB_TERMINAL_INPUT="serial" +#GRUB_TERMINAL_OUTPUT="serial" +# Uncomment to enable BadRAM filtering, modify to suit your needs +# This works with Linux (no patch required) and with any kernel that obtains +# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) +#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" + +# Uncomment to disable graphical terminal (grub-pc only) +#GRUB_TERMINAL=console + +# The resolution used on graphical terminal +# note that you can use only modes which your graphic card supports via VBE +# you can see them in real GRUB with the command `vbeinfo' +#GRUB_GFXMODE=640x480 + +# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +#GRUB_DISABLE_RECOVERY="true" + +# Uncomment to get a beep at grub start +#GRUB_INIT_TUNE="480 440 1" diff --git a/builder/hd-boot/grub/etc/grub.d/00_header b/builder/hd-boot/grub/etc/grub.d/00_header new file mode 100755 index 00000000..149e2cbc --- /dev/null +++ b/builder/hd-boot/grub/etc/grub.d/00_header @@ -0,0 +1,390 @@ +#! /bin/sh +set -e + +# grub-mkconfig helper script. +# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +prefix="/usr" +exec_prefix="/usr" +datarootdir="/usr/share" +grub_lang=`echo $LANG | cut -d . -f 1` +grubdir="`echo "/boot/grub" | sed 's,//*,/,g'`" +quick_boot="0" + +export TEXTDOMAIN=grub +export TEXTDOMAINDIR="${datarootdir}/locale" + +. "${datarootdir}/grub/grub-mkconfig_lib" + +# Do this as early as possible, since other commands might depend on it. +# (e.g. the `loadfont' command might need lvm or raid modules) +for i in ${GRUB_PRELOAD_MODULES} ; do + echo "insmod $i" +done + +if [ "x${GRUB_DEFAULT}" = "x" ] ; then GRUB_DEFAULT=0 ; fi +if [ "x${GRUB_DEFAULT}" = "xsaved" ] ; then GRUB_DEFAULT='${saved_entry}' ; fi +if [ "x${GRUB_TIMEOUT}" = "x" ] ; then GRUB_TIMEOUT=5 ; fi +if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=auto ; fi + +if [ "x${GRUB_DEFAULT_BUTTON}" = "x" ] ; then GRUB_DEFAULT_BUTTON="$GRUB_DEFAULT" ; fi +if [ "x${GRUB_DEFAULT_BUTTON}" = "xsaved" ] ; then GRUB_DEFAULT_BUTTON='${saved_entry}' ; fi +if [ "x${GRUB_TIMEOUT_BUTTON}" = "x" ] ; then GRUB_TIMEOUT_BUTTON="$GRUB_TIMEOUT" ; fi + +cat << EOF +if [ -s \$prefix/grubenv ]; then + set have_grubenv=true + load_env +fi +EOF +if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then + cat < /dev/null ; then + font_path="${path}" + else + continue + fi + break 2 + done + done + if [ -n "${font_path}" ] ; then + cat << EOF +if [ x\$feature_default_font_path = xy ] ; then + font=unicode +else +EOF + # Make the font accessible + prepare_grub_to_access_device `${grub_probe} --target=device "${font_path}"` + cat << EOF + font="`make_system_path_relative_to_its_root "${font_path}"`" +fi + +if loadfont \$font ; then +EOF + else + cat << EOF +if loadfont unicode ; then +EOF + fi + fi + + cat << EOF + set gfxmode=${GRUB_GFXMODE} + load_video + insmod gfxterm +EOF + +# Gettext variables and module +if [ "x${LANG}" != "xC" ] && [ "x${LANG}" != "x" ]; then + cat << EOF + set locale_dir=\$prefix/locale + set lang=${grub_lang} + insmod gettext +EOF +fi + +cat <&2 + + prepare_grub_to_access_device `${grub_probe} --target=device "$GRUB_THEME"` + cat << EOF +insmod gfxmenu +EOF + themedir="`dirname "$GRUB_THEME"`" + for x in "$themedir"/*.pf2 "$themedir"/f/*.pf2; do + if [ -f "$x" ]; then + cat << EOF +loadfont (\$root)`make_system_path_relative_to_its_root $x` +EOF + fi + done + if [ x"`echo "$themedir"/*.jpg`" != x"$themedir/*.jpg" ] || [ x"`echo "$themedir"/*.jpeg`" != x"$themedir/*.jpeg" ]; then + cat << EOF +insmod jpeg +EOF + fi + if [ x"`echo "$themedir"/*.png`" != x"$themedir/*.png" ]; then + cat << EOF +insmod png +EOF + fi + if [ x"`echo "$themedir"/*.tga`" != x"$themedir/*.tga" ]; then + cat << EOF +insmod tga +EOF + fi + + cat << EOF +set theme=(\$root)`make_system_path_relative_to_its_root $GRUB_THEME` +export theme +EOF + elif [ "x$GRUB_BACKGROUND" != x ] && [ -f "$GRUB_BACKGROUND" ] \ + && is_path_readable_by_grub "$GRUB_BACKGROUND"; then + gettext_printf "Found background: %s\n" "$GRUB_BACKGROUND" >&2 + case "$GRUB_BACKGROUND" in + *.png) reader=png ;; + *.tga) reader=tga ;; + *.jpg|*.jpeg) reader=jpeg ;; + *) gettext "Unsupported image format" >&2; echo >&2; exit 1 ;; + esac + prepare_grub_to_access_device `${grub_probe} --target=device "$GRUB_BACKGROUND"` + cat << EOF +insmod $reader +background_image -m stretch `make_system_path_relative_to_its_root "$GRUB_BACKGROUND"` +EOF + fi +fi + +make_timeout () +{ + cat << EOF +if [ "\${recordfail}" = 1 ] ; then + set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1} +else +EOF + if [ "x${3}" != "x" ] ; then + timeout="${2}" + style="${3}" + elif [ "x${1}" != "x" ] && \ + ([ "$quick_boot" = 1 ] || [ "x${1}" != "x0" ]) ; then + # Handle the deprecated GRUB_HIDDEN_TIMEOUT scheme. + timeout="${1}" + if [ "x${2}" != "x0" ] ; then + grub_warn "$(gettext "Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.")" + fi + if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then + style="hidden" + verbose= + else + style="countdown" + verbose=" --verbose" + fi + else + # No hidden timeout, so treat as GRUB_TIMEOUT_STYLE=menu + timeout="${2}" + style="menu" + fi + cat << EOF + if [ x\$feature_timeout_style = xy ] ; then + set timeout_style=${style} + set timeout=${timeout} +EOF + if [ "x${style}" = "xmenu" ] ; then + cat << EOF + # Fallback normal timeout code in case the timeout_style feature is + # unavailable. + else + set timeout=${timeout} +EOF + else + cat << EOF + # Fallback hidden-timeout code in case the timeout_style feature is + # unavailable. + elif sleep${verbose} --interruptible ${timeout} ; then + set timeout=0 +EOF + fi + cat << EOF + fi +fi +EOF +} + +if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then + cat < +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +# Include the GRUB helper library for grub-mkconfig. +. /usr/share/grub/grub-mkconfig_lib + +# We want to work in /boot/grub/ only. +test -d /boot/grub; cd /boot/grub + +# Set the location of a possibly necessary cache file for the background image. +# NOTE: This MUST BE A DOTFILE to avoid confusing it with user-defined images. +BACKGROUND_CACHE=".background_cache" + +set_default_theme(){ + case $GRUB_DISTRIBUTOR in + Tanglu|Ubuntu|Kubuntu) + # Set a monochromatic theme for Tanglu/Ubuntu. + echo "${1}set menu_color_normal=white/black" + echo "${1}set menu_color_highlight=black/light-gray" + + if [ -e /lib/plymouth/themes/default.grub ]; then + sed "s/^/${1}/" /lib/plymouth/themes/default.grub + fi + ;; + *) + # Set the traditional Debian blue theme. + echo "${1}set menu_color_normal=cyan/blue" + echo "${1}set menu_color_highlight=white/blue" + ;; + esac +} + +module_available(){ + local module + for module in "${1}.mod" */"${1}.mod"; do + if [ -f "${module}" ]; then + return 0 + fi + done + return 1 +} + +set_background_image(){ + # Step #1: Search all available output modes ... + local output + for output in ${GRUB_TERMINAL_OUTPUT}; do + if [ "x$output" = "xgfxterm" ]; then + break + fi + done + + # ... and check if we are able to display a background image at all. + if ! [ "x${output}" = "xgfxterm" ]; then + return 1 + fi + + # Step #2: Check if the specified background image exists. + if ! [ -f "${1}" ]; then + return 2 + fi + + # Step #3: Search the correct GRUB module for our background image. + local reader + case "${1}" in + *.jpg|*.JPG|*.jpeg|*.JPEG) reader="jpeg";; + *.png|*.PNG) reader="png";; + *.tga|*.TGA) reader="tga";; + *) return 3;; # Unknown image type. + esac + + # Step #4: Check if the necessary GRUB module is available. + if ! module_available "${reader}"; then + return 4 + fi + + # Step #5: Check if GRUB can read the background image directly. + # If so, we can remove the cache file (if any). Otherwise the backgound + # image needs to be cached under /boot/grub/. + if is_path_readable_by_grub "${1}"; then + rm --force "${BACKGROUND_CACHE}.jpeg" \ + "${BACKGROUND_CACHE}.png" "${BACKGROUND_CACHE}.tga" + elif cp "${1}" "${BACKGROUND_CACHE}.${reader}"; then + set -- "${BACKGROUND_CACHE}.${reader}" "${2}" "${3}" + else + return 5 + fi + + # Step #6: Prepare GRUB to read the background image. + if ! prepare_grub_to_access_device "`${grub_probe} --target=device "${1}"`"; then + return 6 + fi + + # Step #7: Everything went fine, print out a message to stderr ... + echo "Found background image: ${1}" >&2 + + # ... and write our configuration snippet to stdout. Use the colors + # desktop-base specified. If we're using a user-defined background, use + # the default colors since we've got no idea how the image looks like. + # If loading the background image fails, use the default theme. + echo "insmod ${reader}" + echo "if background_image `make_system_path_relative_to_its_root "${1}"`; then" + if [ -n "${2}" ]; then + echo " set color_normal=${2}" + fi + if [ -n "${3}" ]; then + echo " set color_highlight=${3}" + fi + if [ -z "${2}" ] && [ -z "${3}" ]; then + echo " true" + fi + echo "else" + set_default_theme " " + echo "fi" +} + +# Earlier versions of grub-pc copied the default background image to /boot/grub +# during postinst. Remove those obsolete images if they haven't been touched by +# the user. They are still available under /usr/share/images/desktop-base/ if +# desktop-base is installed. +while read checksum background; do + if [ -f "${background}" ] && [ "x`sha1sum "${background}"`" = "x${checksum} ${background}" ]; then + echo "Removing old background image: ${background}" >&2 + rm "${background}" + fi +done <. + +prefix="/usr" +exec_prefix="/usr" +datarootdir="/usr/share" +ubuntu_recovery="0" +quiet_boot="0" +quick_boot="0" +gfxpayload_dynamic="0" +vt_handoff="0" + +. "${datarootdir}/grub/grub-mkconfig_lib" + +export TEXTDOMAIN=grub +export TEXTDOMAINDIR="${datarootdir}/locale" + +CLASS="--class gnu-linux --class gnu --class os" +SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" + +if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then + OS=GNU/Linux +else + case ${GRUB_DISTRIBUTOR} in + Ubuntu|Kubuntu) + OS="${GRUB_DISTRIBUTOR}" + ;; + *) + OS="${GRUB_DISTRIBUTOR} GNU/Linux" + ;; + esac + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" +fi + +# loop-AES arranges things so that /dev/loop/X can be our root device, but +# the initrds that Linux uses don't like that. +case ${GRUB_DEVICE} in + /dev/loop/*|/dev/loop[0-9]) + GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` + # We can't cope with devices loop-mounted from files here. + case ${GRUB_DEVICE} in + /dev/*) ;; + *) exit 0 ;; + esac + ;; +esac + +if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ + || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ + || uses_abstraction "${GRUB_DEVICE}" lvm; then + LINUX_ROOT_DEVICE=${GRUB_DEVICE} +else + LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} +fi + +case x"$GRUB_FS" in + xbtrfs) + rootsubvol="`make_system_path_relative_to_its_root /`" + rootsubvol="${rootsubvol#/}" + if [ "x${rootsubvol}" != x ]; then + GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}" + fi;; + xzfs) + rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` + bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`" + LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs}" + ;; +esac + +title_correction_code= + +if [ -x /lib/recovery-mode/recovery-menu ]; then + GRUB_CMDLINE_LINUX_RECOVERY=recovery +else + GRUB_CMDLINE_LINUX_RECOVERY=single +fi +if [ "$ubuntu_recovery" = 1 ]; then + GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY nomodeset" +fi + +if [ "$vt_handoff" = 1 ]; then + for word in $GRUB_CMDLINE_LINUX_DEFAULT; do + if [ "$word" = splash ]; then + GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT \$vt_handoff" + fi + done +fi + +linux_entry () +{ + os="$1" + version="$2" + type="$3" + args="$4" + + if [ -z "$boot_device_id" ]; then + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" + fi + if [ x$type != xsimple ] ; then + case $type in + recovery) + title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;; + init-*) + title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "${type#init-}")" ;; + *) + title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; + esac + if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then + replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" + quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" + title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;" + grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")" + fi + echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" + else + echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" + fi + if [ "$quick_boot" = 1 ]; then + echo " recordfail" | sed "s/^/$submenu_indentation/" + fi + if [ x$type != xrecovery ] ; then + save_default_entry | grub_add_tab + fi + + # Use ELILO's generic "efifb" when it's known to be available. + # FIXME: We need an interface to select vesafb in case efifb can't be used. + if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then + echo " load_video" | sed "s/^/$submenu_indentation/" + else + if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then + echo " load_video" | sed "s/^/$submenu_indentation/" + fi + fi + if ([ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]) && \ + ([ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 1 ]); then + echo " gfxmode \$linux_gfx_mode" | sed "s/^/$submenu_indentation/" + fi + + echo " insmod gzio" | sed "s/^/$submenu_indentation/" + echo " if [ x\$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" | sed "s/^/$submenu_indentation/" + + if [ x$dirname = x/ ]; then + if [ -z "${prepare_root_cache}" ]; then + prepare_root_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE} | grub_add_tab)" + fi + printf '%s\n' "${prepare_root_cache}" | sed "s/^/$submenu_indentation/" + else + if [ -z "${prepare_boot_cache}" ]; then + prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)" + fi + printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" + fi + if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then + message="$(gettext_printf "Loading Linux %s ..." ${version})" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' +EOF + fi + if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then + sed "s/^/$submenu_indentation/" << EOF + linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args} +EOF + else + sed "s/^/$submenu_indentation/" << EOF + linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} +EOF + fi + if test -n "${initrd}" ; then + # TRANSLATORS: ramdisk isn't identifier. Should be translated. + if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then + message="$(gettext_printf "Loading initial ramdisk ...")" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' +EOF + fi + sed "s/^/$submenu_indentation/" << EOF + initrd ${rel_dirname}/${initrd} +EOF + fi + sed "s/^/$submenu_indentation/" << EOF +} +EOF +} + +machine=`uname -m` +case "x$machine" in + xi?86 | xx86_64) + list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do + if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi + done` ;; + *) + list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do + if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi + done` ;; +esac + +case "$machine" in + i?86) GENKERNEL_ARCH="x86" ;; + mips|mips64) GENKERNEL_ARCH="mips" ;; + mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;; + arm*) GENKERNEL_ARCH="arm" ;; + *) GENKERNEL_ARCH="$machine" ;; +esac + +prepare_boot_cache= +prepare_root_cache= +boot_device_id= +title_correction_code= + +cat << 'EOF' +function gfxmode { + set gfxpayload="${1}" +EOF +if [ "$vt_handoff" = 1 ]; then + cat << 'EOF' + if [ "${1}" = "keep" ]; then + set vt_handoff=vt.handoff=7 + else + set vt_handoff= + fi +EOF +fi +cat << EOF +} +EOF + +# Use ELILO's generic "efifb" when it's known to be available. +# FIXME: We need an interface to select vesafb in case efifb can't be used. +if [ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 0 ]; then + echo "set linux_gfx_mode=$GRUB_GFXPAYLOAD_LINUX" +else + cat << EOF +if [ "\${recordfail}" != 1 ]; then + if [ -e \${prefix}/gfxblacklist.txt ]; then + if hwmatch \${prefix}/gfxblacklist.txt 3; then + if [ \${match} = 0 ]; then + set linux_gfx_mode=keep + else + set linux_gfx_mode=text + fi + else + set linux_gfx_mode=text + fi + else + set linux_gfx_mode=keep + fi +else + set linux_gfx_mode=text +fi +EOF +fi +cat << EOF +export linux_gfx_mode +EOF + +# Extra indentation to add to menu entries in a submenu. We're not in a submenu +# yet, so it's empty. In a submenu it will be equal to '\t' (one tab). +submenu_indentation="" + +is_top_level=true +while [ "x$list" != "x" ] ; do + linux=`version_find_latest $list` + case $linux in + *.efi.signed) + # We handle these in linux_entry. + list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '` + continue + ;; + esac + gettext_printf "Found linux image: %s\n" "$linux" >&2 + basename=`basename $linux` + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` + version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` + alt_version=`echo $version | sed -e "s,\.old$,,g"` + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + + initrd= + for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \ + "initrd-${version}" "initramfs-${version}.img" \ + "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ + "initrd-${alt_version}" "initramfs-${alt_version}.img" \ + "initramfs-genkernel-${version}" \ + "initramfs-genkernel-${alt_version}" \ + "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \ + "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do + if test -e "${dirname}/${i}" ; then + initrd="$i" + break + fi + done + + config= + for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do + if test -e "${i}" ; then + config="${i}" + break + fi + done + + initramfs= + if test -n "${config}" ; then + initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"` + fi + + if test -n "${initrd}" ; then + gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 + elif test -z "${initramfs}" ; then + # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's + # no initrd or builtin initramfs, it can't work here. + linux_root_device_thisversion=${GRUB_DEVICE} + fi + + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then + linux_entry "${OS}" "${version}" simple \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" + + submenu_indentation="$grub_tab" + + if [ -z "$boot_device_id" ]; then + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" + fi + # TRANSLATORS: %s is replaced with an OS name + echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {" + is_top_level=false + fi + + linux_entry "${OS}" "${version}" advanced \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" + for supported_init in ${SUPPORTED_INITS}; do + init_path="${supported_init#*:}" + if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "${init_path}" ]; then + linux_entry "${OS}" "${version}" "init-${supported_init%%:*}" \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" + fi + done + if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then + linux_entry "${OS}" "${version}" recovery \ + "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}" + fi + + list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '` +done + +# If at least one kernel was found, then we need to +# add a closing '}' for the submenu command. +if [ x"$is_top_level" != xtrue ]; then + echo '}' +fi + +echo "$title_correction_code" diff --git a/builder/hd-boot/grub/etc/grub.d/20_linux_xen b/builder/hd-boot/grub/etc/grub.d/20_linux_xen new file mode 100755 index 00000000..864f95ba --- /dev/null +++ b/builder/hd-boot/grub/etc/grub.d/20_linux_xen @@ -0,0 +1,288 @@ +#! /bin/sh +set -e + +# grub-mkconfig helper script. +# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +prefix="/usr" +exec_prefix="/usr" +datarootdir="/usr/share" + +. "${datarootdir}/grub/grub-mkconfig_lib" + +export TEXTDOMAIN=grub +export TEXTDOMAINDIR="${datarootdir}/locale" + +CLASS="--class gnu-linux --class gnu --class os --class xen" +SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" + +if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then + OS=GNU/Linux +else + OS="${GRUB_DISTRIBUTOR} GNU/Linux" + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" +fi + +# loop-AES arranges things so that /dev/loop/X can be our root device, but +# the initrds that Linux uses don't like that. +case ${GRUB_DEVICE} in + /dev/loop/*|/dev/loop[0-9]) + GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` + # We can't cope with devices loop-mounted from files here. + case ${GRUB_DEVICE} in + /dev/*) ;; + *) exit 0 ;; + esac + ;; +esac + +if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ + || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ + || uses_abstraction "${GRUB_DEVICE}" lvm; then + LINUX_ROOT_DEVICE=${GRUB_DEVICE} +else + LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} +fi + +# Allow overriding GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT. +if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE}" ]; then + GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX_XEN_REPLACE}" +fi +if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}" ]; then + GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}" +fi + +case x"$GRUB_FS" in + xbtrfs) + rootsubvol="`make_system_path_relative_to_its_root /`" + rootsubvol="${rootsubvol#/}" + if [ "x${rootsubvol}" != x ]; then + GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}" + fi;; + xzfs) + rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` + bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`" + LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs}" + ;; +esac + +title_correction_code= + +linux_entry () +{ + os="$1" + version="$2" + xen_version="$3" + type="$4" + args="$5" + xen_args="$6" + if [ -z "$boot_device_id" ]; then + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" + fi + if [ x$type != xsimple ] ; then + if [ x$type = xrecovery ] ; then + title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" + elif [ "${type#init-}" != "$type" ] ; then + title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "${type#init-}")" + else + title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" + fi + replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" + if [ x"Xen ${xen_version}>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then + quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" + title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;" + grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")" + fi + echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'xen-gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" + else + title="$(gettext_printf "%s, with Xen hypervisor" "${os}")" + echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'xen-gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" + fi + if [ x$type != xrecovery ] ; then + save_default_entry | grub_add_tab | sed "s/^/$submenu_indentation/" + fi + + if [ -z "${prepare_boot_cache}" ]; then + prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)" + fi + printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" + xmessage="$(gettext_printf "Loading Xen %s ..." ${xen_version})" + lmessage="$(gettext_printf "Loading Linux %s ..." ${version})" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$xmessage" | grub_quote)' + if [ "\$grub_platform" = "pc" -o "\$grub_platform" = "" ]; then + xen_rm_opts= + else + xen_rm_opts="no-real-mode edd=off" + fi + multiboot ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} + echo '$(echo "$lmessage" | grub_quote)' + module ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} +EOF + if test -n "${initrd}" ; then + # TRANSLATORS: ramdisk isn't identifier. Should be translated. + message="$(gettext_printf "Loading initial ramdisk ...")" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' + module --nounzip ${rel_dirname}/${initrd} +EOF + fi + sed "s/^/$submenu_indentation/" << EOF +} +EOF +} + +linux_list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do + if grub_file_is_not_garbage "$i"; then + basename=$(basename $i) + version=$(echo $basename | sed -e "s,^[^0-9]*-,,g") + dirname=$(dirname $i) + config= + for j in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do + if test -e "${j}" ; then + config="${j}" + break + fi + done + if (grep -qx "CONFIG_XEN_DOM0=y" "${config}" 2> /dev/null || grep -qx "CONFIG_XEN_PRIVILEGED_GUEST=y" "${config}" 2> /dev/null); then echo -n "$i " ; fi + fi + done` +if [ "x${linux_list}" = "x" ] ; then + exit 0 +fi + +file_is_not_sym () { + case "$1" in + */xen-syms-*) + return 1;; + *) + return 0;; + esac +} + +xen_list=`for i in /boot/xen*; do + if grub_file_is_not_garbage "$i" && file_is_not_sym "$i" ; then echo -n "$i " ; fi + done` +prepare_boot_cache= +boot_device_id= + +title_correction_code= + +machine=`uname -m` + +case "$machine" in + i?86) GENKERNEL_ARCH="x86" ;; + mips|mips64) GENKERNEL_ARCH="mips" ;; + mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;; + arm*) GENKERNEL_ARCH="arm" ;; + *) GENKERNEL_ARCH="$machine" ;; +esac + +# Extra indentation to add to menu entries in a submenu. We're not in a submenu +# yet, so it's empty. In a submenu it will be equal to '\t' (one tab). +submenu_indentation="" + +is_top_level=true + +while [ "x${xen_list}" != "x" ] ; do + list="${linux_list}" + current_xen=`version_find_latest $xen_list` + xen_basename=`basename ${current_xen}` + xen_dirname=`dirname ${current_xen}` + rel_xen_dirname=`make_system_path_relative_to_its_root $xen_dirname` + xen_version=`echo $xen_basename | sed -e "s,.gz$,,g;s,^xen-,,g"` + if [ -z "$boot_device_id" ]; then + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" + fi + if [ "x$is_top_level" != xtrue ]; then + echo " submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {" + fi + while [ "x$list" != "x" ] ; do + linux=`version_find_latest $list` + gettext_printf "Found linux image: %s\n" "$linux" >&2 + basename=`basename $linux` + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` + version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` + alt_version=`echo $version | sed -e "s,\.old$,,g"` + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + + initrd= + for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \ + "initrd-${version}" "initramfs-${version}.img" \ + "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ + "initrd-${alt_version}" "initramfs-${alt_version}.img" \ + "initramfs-genkernel-${version}" \ + "initramfs-genkernel-${alt_version}" \ + "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \ + "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" ; do + if test -e "${dirname}/${i}" ; then + initrd="$i" + break + fi + done + if test -n "${initrd}" ; then + gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 + else + # "UUID=" magic is parsed by initrds. Since there's no initrd, it can't work here. + linux_root_device_thisversion=${GRUB_DEVICE} + fi + + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then + linux_entry "${OS}" "${version}" "${xen_version}" simple \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" + + submenu_indentation="$grub_tab$grub_tab" + + if [ -z "$boot_device_id" ]; then + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" + fi + # TRANSLATORS: %s is replaced with an OS name + echo "submenu '$(gettext_printf "Advanced options for %s (with Xen hypervisor)" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {" + echo " submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {" + is_top_level=false + fi + + linux_entry "${OS}" "${version}" "${xen_version}" advanced \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" + for supported_init in ${SUPPORTED_INITS}; do + init_path="${supported_init#*:}" + if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "${init_path}" ]; then + linux_entry "${OS}" "${version}" "${xen_version}" "init-${supported_init%%:*}" \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" + + fi + done + if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then + linux_entry "${OS}" "${version}" "${xen_version}" recovery \ + "single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" + fi + + list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '` + done + if [ x"$is_top_level" != xtrue ]; then + echo ' }' + fi + xen_list=`echo $xen_list | tr ' ' '\n' | fgrep -vx "$current_xen" | tr '\n' ' '` +done + +# If at least one kernel was found, then we need to +# add a closing '}' for the submenu command. +if [ x"$is_top_level" != xtrue ]; then + echo '}' +fi + +echo "$title_correction_code" diff --git a/builder/hd-boot/grub/etc/grub.d/30_os-prober b/builder/hd-boot/grub/etc/grub.d/30_os-prober new file mode 100755 index 00000000..bb698c01 --- /dev/null +++ b/builder/hd-boot/grub/etc/grub.d/30_os-prober @@ -0,0 +1,371 @@ +#! /bin/sh +set -e + +# grub-mkconfig helper script. +# Copyright (C) 2006,2007,2008,2009 Free Software Foundation, Inc. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +prefix="/usr" +exec_prefix="/usr" +datarootdir="/usr/share" +quick_boot="0" + +export TEXTDOMAIN=grub +export TEXTDOMAINDIR="${datarootdir}/locale" + +. "${datarootdir}/grub/grub-mkconfig_lib" + +found_other_os= + +adjust_timeout () { + if [ "$quick_boot" = 1 ] && [ "x${found_other_os}" != "x" ]; then + cat << EOF +set timeout_style=menu +if [ "\${timeout}" = 0 ]; then + set timeout=10 +fi +EOF + fi +} + +if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then + exit 0 +fi + +if [ -z "`which os-prober 2> /dev/null`" -o -z "`which linux-boot-prober 2> /dev/null`" ] ; then + # missing os-prober and/or linux-boot-prober + exit 0 +fi + +OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`" +if [ -z "${OSPROBED}" ] ; then + # empty os-prober output, nothing doing + exit 0 +fi + +osx_entry() { + found_other_os=1 + if [ x$2 = x32 ]; then + # TRANSLATORS: it refers to kernel architecture (32-bit) + bitstr="$(gettext "(32-bit)")" + else + # TRANSLATORS: it refers to kernel architecture (64-bit) + bitstr="$(gettext "(64-bit)")" + fi + # TRANSLATORS: it refers on the OS residing on device %s + onstr="$(gettext_printf "(on %s)" "${DEVICE}")" + cat << EOF +menuentry '$(echo "${LONGNAME} $bitstr $onstr" | grub_quote)' --class osx --class darwin --class os \$menuentry_id_option 'osprober-xnu-$2-$(grub_get_device_id "${DEVICE}")' { +EOF + save_default_entry | grub_add_tab + prepare_grub_to_access_device ${DEVICE} | grub_add_tab + cat << EOF + load_video + set do_resume=0 + if [ /var/vm/sleepimage -nt10 / ]; then + if xnu_resume /var/vm/sleepimage; then + set do_resume=1 + fi + fi + if [ \$do_resume = 0 ]; then + xnu_uuid ${OSXUUID} uuid + if [ -f /Extra/DSDT.aml ]; then + acpi -e /Extra/DSDT.aml + fi + if [ /kernelcache -nt /System/Library/Extensions ]; then + $1 /kernelcache boot-uuid=\${uuid} rd=*uuid + else + $1 /mach_kernel boot-uuid=\${uuid} rd=*uuid + if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then + xnu_mkext /System/Library/Extensions.mkext + else + xnu_kextdir /System/Library/Extensions + fi + fi + if [ -f /Extra/Extensions.mkext ]; then + xnu_mkext /Extra/Extensions.mkext + fi + if [ -d /Extra/Extensions ]; then + xnu_kextdir /Extra/Extensions + fi + if [ -f /Extra/devprop.bin ]; then + xnu_devprop_load /Extra/devprop.bin + fi + if [ -f /Extra/splash.jpg ]; then + insmod jpeg + xnu_splash /Extra/splash.jpg + fi + if [ -f /Extra/splash.png ]; then + insmod png + xnu_splash /Extra/splash.png + fi + if [ -f /Extra/splash.tga ]; then + insmod tga + xnu_splash /Extra/splash.tga + fi + fi +} +EOF +} + +used_osprober_linux_ids= + +wubi= + +for OS in ${OSPROBED} ; do + DEVICE="`echo ${OS} | cut -d ':' -f 1`" + LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`" + LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`" + BOOT="`echo ${OS} | cut -d ':' -f 4`" + if UUID="`${grub_probe} --target=fs_uuid --device ${DEVICE%@*}`"; then + EXPUUID="$UUID" + + if [ x"${DEVICE#*@}" != x ] ; then + EXPUUID="${EXPUUID}@${DEVICE#*@}" + fi + + if [ "x${GRUB_OS_PROBER_SKIP_LIST}" != "x" -a "x`echo ${GRUB_OS_PROBER_SKIP_LIST} | grep -i -e '\b'${EXPUUID}'\b'`" != "x" ] ; then + echo "Skipped ${LONGNAME} on ${DEVICE} by user request." >&2 + continue + fi + fi + + BTRFS="`echo ${OS} | cut -d ':' -f 5`" + if [ "x$BTRFS" = "xbtrfs" ]; then + BTRFSuuid="`echo ${OS} | cut -d ':' -f 6`" + BTRFSsubvol="`echo ${OS} | cut -d ':' -f 7`" + fi + + if [ -z "${LONGNAME}" ] ; then + LONGNAME="${LABEL}" + fi + + gettext_printf "Found %s on %s\n" "${LONGNAME}" "${DEVICE}" >&2 + + case ${BOOT} in + chain) + + case ${LONGNAME} in + Windows*) + if [ -z "$wubi" ]; then + if [ -x /usr/share/lupin-support/grub-mkimage ] && \ + /usr/share/lupin-support/grub-mkimage --test; then + wubi=yes + else + wubi=no + fi + fi + if [ "$wubi" = yes ]; then + echo "Skipping ${LONGNAME} on Wubi system" >&2 + continue + fi + ;; + esac + + found_other_os=1 + onstr="$(gettext_printf "(on %s)" "${DEVICE}")" + cat << EOF +menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class windows --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' { +EOF + save_default_entry | grub_add_tab + prepare_grub_to_access_device ${DEVICE} | grub_add_tab + + if [ x"`${grub_probe} --device ${DEVICE} --target=partmap`" = xmsdos ]; then + cat << EOF + parttool \${root} hidden- +EOF + fi + + case ${LONGNAME} in + Windows\ Vista*|Windows\ 7*|Windows\ Server\ 2008*) + ;; + *) + cat << EOF + drivemap -s (hd0) \${root} +EOF + ;; + esac + + cat < /dev/null; do + counter=$((counter+1)); + done + if [ -z "$boot_device_id" ]; then + boot_device_id="$(grub_get_device_id "${DEVICE}")" + fi + used_osprober_linux_ids="$used_osprober_linux_ids 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id'" + + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then + cat << EOF +menuentry '$(echo "$OS $onstr" | grub_quote)' --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' { +EOF + save_default_entry | grub_add_tab + printf '%s\n' "${prepare_boot_cache}" + cat << EOF + linux ${LKERNEL} ${LPARAMS} +EOF + if [ -n "${LINITRD}" ] ; then + cat << EOF + initrd ${LINITRD} +EOF + fi + cat << EOF +} +EOF + echo "submenu '$(gettext_printf "Advanced options for %s" "${OS} $onstr" | grub_quote)' \$menuentry_id_option 'osprober-gnulinux-advanced-$boot_device_id' {" + is_top_level=false + fi + title="${LLABEL} $onstr" + cat << EOF + menuentry '$(echo "$title" | grub_quote)' --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-$LKERNEL-${recovery_params}-$boot_device_id' { +EOF + save_default_entry | sed -e "s/^/$grub_tab$grub_tab/" + printf '%s\n' "${prepare_boot_cache}" | grub_add_tab + cat << EOF + linux ${LKERNEL} ${LPARAMS} +EOF + if [ -n "${LINITRD}" ] ; then + cat << EOF + initrd ${LINITRD} +EOF + fi + cat << EOF + } +EOF + if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then + replacement_title="$(echo "Advanced options for ${OS} $onstr" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" + quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" + title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;" + grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")" + fi + done + if [ x"$is_top_level" != xtrue ]; then + echo '}' + fi + echo "$title_correction_code" + ;; + macosx) + if [ "${UUID}" ]; then + OSXUUID="${UUID}" + osx_entry xnu_kernel 32 + osx_entry xnu_kernel64 64 + fi + ;; + hurd) + found_other_os=1 + onstr="$(gettext_printf "(on %s)" "${DEVICE}")" + cat << EOF +menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class hurd --class gnu --class os \$menuentry_id_option 'osprober-gnuhurd-/boot/gnumach.gz-false-$(grub_get_device_id "${DEVICE}")' { +EOF + save_default_entry | grub_add_tab + prepare_grub_to_access_device ${DEVICE} | grub_add_tab + grub_device="`${grub_probe} --device ${DEVICE} --target=drive`" + mach_device="`echo "${grub_device}" | sed -e 's/(\(hd.*\),msdos\(.*\))/\1s\2/'`" + grub_fs="`${grub_probe} --device ${DEVICE} --target=fs`" + case "${grub_fs}" in + *fs) hurd_fs="${grub_fs}" ;; + *) hurd_fs="${grub_fs}fs" ;; + esac + cat << EOF + multiboot /boot/gnumach.gz root=device:${mach_device} + module /hurd/${hurd_fs}.static ${hurd_fs} --readonly \\ + --multiboot-command-line='\${kernel-command-line}' \\ + --host-priv-port='\${host-port}' \\ + --device-master-port='\${device-port}' \\ + --exec-server-task='\${exec-task}' -T typed '\${root}' \\ + '\$(task-create)' '\$(task-resume)' + module /lib/ld.so.1 exec /hurd/exec '\$(exec-task=task-create)' +} +EOF + ;; + minix) + cat << EOF +menuentry "${LONGNAME} (on ${DEVICE}, Multiboot)" { +EOF + save_default_entry | sed -e "s/^/\t/" + prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/" + cat << EOF + multiboot /boot/image_latest +} +EOF + ;; + *) + echo -n " " + # TRANSLATORS: %s is replaced by OS name. + gettext_printf "%s is not yet supported by grub-mkconfig.\n" "${LONGNAME}" >&2 + ;; + esac +done + +adjust_timeout diff --git a/builder/hd-boot/grub/etc/grub.d/30_uefi-firmware b/builder/hd-boot/grub/etc/grub.d/30_uefi-firmware new file mode 100755 index 00000000..1c5fcd4c --- /dev/null +++ b/builder/hd-boot/grub/etc/grub.d/30_uefi-firmware @@ -0,0 +1,46 @@ +#! /bin/sh +set -e + +# grub-mkconfig helper script. +# Copyright (C) 2012 Free Software Foundation, Inc. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +prefix="/usr" +exec_prefix="/usr" +datarootdir="/usr/share" + +export TEXTDOMAIN=grub +export TEXTDOMAINDIR="${datarootdir}/locale" + +. "${datarootdir}/grub/grub-mkconfig_lib" + +efi_vars_dir=/sys/firmware/efi/vars +EFI_GLOBAL_VARIABLE=8be4df61-93ca-11d2-aa0d-00e098032b8c +OsIndications="$efi_vars_dir/OsIndicationsSupported-$EFI_GLOBAL_VARIABLE/data" + +if [ -e "$OsIndications" ] && \ + [ "$(( $(printf %x \'"$(cat $OsIndications | cut -b1)") & 1 ))" = 1 ]; then + LABEL="System setup" + + gettext_printf "Adding boot menu entry for EFI firmware configuration\n" >&2 + + onstr="$(gettext_printf "(on %s)" "${DEVICE}")" + + cat << EOF +menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' { + fwsetup +} +EOF +fi diff --git a/builder/hd-boot/grub/etc/grub.d/40_custom b/builder/hd-boot/grub/etc/grub.d/40_custom new file mode 100755 index 00000000..48068de4 --- /dev/null +++ b/builder/hd-boot/grub/etc/grub.d/40_custom @@ -0,0 +1,5 @@ +#!/bin/sh +exec tail -n +3 $0 +# This file provides an easy way to add custom menu entries. Simply type the +# menu entries you want to add after this comment. Be careful not to change +# the 'exec tail' line above. diff --git a/builder/hd-boot/grub/etc/grub.d/41_custom b/builder/hd-boot/grub/etc/grub.d/41_custom new file mode 100755 index 00000000..fcc21a98 --- /dev/null +++ b/builder/hd-boot/grub/etc/grub.d/41_custom @@ -0,0 +1,9 @@ +#!/bin/sh +cat <"$OS_PROBER_TMP/mounted-map" || true + +partition="$1" + +if [ -z "$partition" ]; then + echo "usage: linux-boot-prober partition" >&2 + exit 1 +fi + +if ! mapped="$(mapdevfs "$partition")"; then + log "Device '$partition' does not exist; skipping" + continue +fi + +if ! grep -q "^$mapped " "$OS_PROBER_TMP/mounted-map"; then + for test in /usr/lib/linux-boot-probes/*; do + debug "running $test" + if [ -x $test ] && [ -f $test ]; then + if $test "$partition"; then + debug "linux detected by $test" + break + fi + fi + done +else + mpoint=$(grep "^$mapped " "$OS_PROBER_TMP/mounted-map" | head -n1 | cut -d " " -f 2) + mpoint="$(unescape_mount "$mpoint")" + if [ "$mpoint" != "/target/boot" ] && [ "$mpoint" != "/target" ] && [ "$mpoint" != "/" ]; then + type=$(grep "^$mapped " "$OS_PROBER_TMP/mounted-map" | head -n1 | cut -d " " -f 3) + if ! grep -q " $mpoint/boot " "$OS_PROBER_TMP/mounted-map"; then + linux_mount_boot "$partition" "$mpoint" + bootpart="${mountboot%% *}" + bootmounted="${mountboot#* }" + else + bootpart="$partition" + bootmounted=0 + fi + for test in /usr/lib/linux-boot-probes/mounted/*; do + if [ -f $test ] && [ -x $test ]; then + debug "running $test on mounted $partition" + if $test "$partition" "$bootpart" "$mpoint" "$type"; then + debug "$test succeeded" + break + fi + fi + done + if [ "$bootmounted" = 1 ]; then + if ! umount "$mpoint/boot"; then + warn "failed to umount $mpoint/boot" + fi + fi + fi +fi diff --git a/builder/hd-boot/grub/usr/bin/os-prober b/builder/hd-boot/grub/usr/bin/os-prober new file mode 100755 index 00000000..d67f0b3d --- /dev/null +++ b/builder/hd-boot/grub/usr/bin/os-prober @@ -0,0 +1,166 @@ +#!/bin/sh +set -e + +. /usr/share/os-prober/common.sh + +newns "$@" +require_tmpdir + +log_output () { + if type log-output >/dev/null 2>&1; then + log-output -t os-prober --pass-stdout $@ + else + $@ + fi +} + +on_sataraid () { + type dmraid >/dev/null 2>&1 || return 1 + local parent="${1%/*}" + local device="/dev/${parent##*/}" + if dmraid -r -c | grep -q "$device"; then + return 0 + fi + return 1 +} + +partitions () { + # Exclude partitions that have whole_disk sysfs attribute set. + if [ -d /sys/block ]; then + # Exclude partitions on physical disks that are part of a + # Serial ATA RAID disk. + for part in /sys/block/*/*[0-9]; do + if [ -f "$part/start" ] && \ + [ ! -f "$part/whole_disk" ] && ! on_sataraid $part; then + name="$(echo "${part##*/}" | sed 's,[!.],/,g')" + if [ -e "/dev/$name" ]; then + echo "/dev/$name" + fi + fi + done + + # Add Serial ATA RAID devices + if type dmraid >/dev/null 2>&1 && \ + dmraid -s -c >/dev/null 2>&1; then + for raidset in $(dmraid -sa -c); do + for part in /dev/mapper/"$raidset"*[0-9]; do + echo "$part" + done + done + fi + elif [ "$(uname -s)" = Linux ]; then + echo "Cannot find list of partitions! (Try mounting /sys.)" >&2 + exit 1 + else + # We don't know how to probe OSes on non-Linux kernels. For + # now, just don't get in the way. + exit 0 + fi + + # Also detect OSes on LVM volumes (assumes LVM is active) + if type lvs >/dev/null 2>&1; then + echo "$(LVM_SUPPRESS_FD_WARNINGS=1 log_output lvs --noheadings --separator : -o vg_name,lv_name | + sed "s|-|--|g;s|^[[:space:]]*\(.*\):\(.*\)$|/dev/mapper/\1-\2|")" + fi +} + +parse_proc_swaps () { + while read line; do + set -f + set -- $line + set +f + echo "$(mapdevfs $1) swap" + done +} + +parse_proc_mdstat () { + if type udevadm >/dev/null 2>&1; then + udevinfo () { + udevadm info "$@" + } + fi + while read line; do + for word in $line; do + dev="${word%%\[*}" + # TODO: factor this out to something in di-utils if + # it's needed elsewhere + if [ -d /sys/block ] && type udevinfo >/dev/null 2>&1; then + if ! udevinfo -q path -n "/dev/$dev" 2>/dev/null | \ + grep -q '/.*/.*/'; then + continue + fi + elif ! echo "$dev" | grep -q "/part"; then + continue + fi + raidpart="/dev/$dev" + echo "$(mapdevfs "$raidpart")" + done + done +} + +# Needed for idempotency +rm -f /var/lib/os-prober/labels + +for prog in /usr/lib/os-probes/init/*; do + if [ -x "$prog" ] && [ -f "$prog" ]; then + "$prog" || true + fi +done + +# We need to properly canonicalize partitions with mount points and partitions +# used in RAID +grep "^/dev/" /proc/mounts | parse_proc_mounts >"$OS_PROBER_TMP/mounted-map" || true +: >"$OS_PROBER_TMP/swaps-map" +if [ -f /proc/swaps ]; then + grep "^/dev/" /proc/swaps | parse_proc_swaps >"$OS_PROBER_TMP/swaps-map" || true +fi +: >"$OS_PROBER_TMP/raided-map" +if [ -f /proc/mdstat ] ; then + grep "^md" /proc/mdstat | parse_proc_mdstat >"$OS_PROBER_TMP/raided-map" || true +fi + +for partition in $(partitions); do + if ! mapped="$(mapdevfs "$partition")"; then + log "Device '$partition' does not exist; skipping" + continue + fi + + # Skip partitions used in software RAID arrays + if grep -q "^$mapped" "$OS_PROBER_TMP/raided-map" ; then + debug "$partition: part of software raid array" + continue + fi + + # Skip partitions used as active swap + if grep -q "^$mapped " "$OS_PROBER_TMP/swaps-map" ; then + debug "$partition: is active swap" + continue + fi + + if ! grep -q "^$mapped " "$OS_PROBER_TMP/mounted-map" ; then + for test in /usr/lib/os-probes/*; do + if [ -f "$test" ] && [ -x "$test" ]; then + debug "running $test on $partition" + if "$test" "$partition"; then + debug "os detected by $test" + break + fi + fi + done + else + mpoint=$(grep "^$mapped " "$OS_PROBER_TMP/mounted-map" | head -n1 | cut -d " " -f 2) + mpoint="$(unescape_mount "$mpoint")" + if [ "$mpoint" != "/target/boot" ] && [ "$mpoint" != "/target" ] && [ "$mpoint" != "/" ]; then + type=$(grep "^$mapped " "$OS_PROBER_TMP/mounted-map" | head -n1 | cut -d " " -f 3) + for test in /usr/lib/os-probes/mounted/*; do + if [ -f "$test" ] && [ -x "$test" ]; then + debug "running $test on mounted $partition" + if "$test" "$partition" "$mpoint" "$type"; then + debug "os detected by $test" + break + fi + fi + done + fi + fi +done diff --git a/builder/hd-boot/grub/usr/lib/grub/grub-mkconfig_lib b/builder/hd-boot/grub/usr/lib/grub/grub-mkconfig_lib new file mode 120000 index 00000000..4d0e3cec --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/grub-mkconfig_lib @@ -0,0 +1 @@ +../../share/grub/grub-mkconfig_lib \ No newline at end of file diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/915resolution.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/915resolution.mod new file mode 100644 index 00000000..27c2e8e2 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/915resolution.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/acpi.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/acpi.mod new file mode 100644 index 00000000..f7090167 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/acpi.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/adler32.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/adler32.mod new file mode 100644 index 00000000..7c048703 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/adler32.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/affs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/affs.mod new file mode 100644 index 00000000..4af25a45 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/affs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/afs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/afs.mod new file mode 100644 index 00000000..2e572352 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/afs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ahci.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ahci.mod new file mode 100644 index 00000000..02fe704a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ahci.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/all_video.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/all_video.mod new file mode 100644 index 00000000..29e79fa1 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/all_video.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/aout.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/aout.mod new file mode 100644 index 00000000..5e02060a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/aout.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/archelp.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/archelp.mod new file mode 100644 index 00000000..a09cf0f9 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/archelp.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/at_keyboard.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/at_keyboard.mod new file mode 100644 index 00000000..7d90457b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/at_keyboard.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ata.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ata.mod new file mode 100644 index 00000000..085378e9 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ata.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/backtrace.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/backtrace.mod new file mode 100644 index 00000000..5fb4cb90 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/backtrace.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/bfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/bfs.mod new file mode 100644 index 00000000..d6627fa2 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/bfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/biosdisk.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/biosdisk.mod new file mode 100644 index 00000000..991b3fc8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/biosdisk.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/bitmap.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/bitmap.mod new file mode 100644 index 00000000..fd47567e Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/bitmap.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/bitmap_scale.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/bitmap_scale.mod new file mode 100644 index 00000000..5ce06f83 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/bitmap_scale.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/blocklist.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/blocklist.mod new file mode 100644 index 00000000..614d3abb Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/blocklist.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/boot.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/boot.img new file mode 100644 index 00000000..81a7a30a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/boot.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/boot.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/boot.mod new file mode 100644 index 00000000..e9c3a1c7 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/boot.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/boot_hybrid.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/boot_hybrid.img new file mode 100644 index 00000000..d3c63409 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/boot_hybrid.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/bsd.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/bsd.mod new file mode 100644 index 00000000..7e8e42df Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/bsd.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/btrfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/btrfs.mod new file mode 100644 index 00000000..7a9505f9 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/btrfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/bufio.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/bufio.mod new file mode 100644 index 00000000..99cb5c5c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/bufio.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cat.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cat.mod new file mode 100644 index 00000000..ac0710d6 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cat.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbfs.mod new file mode 100644 index 00000000..71ad779b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbls.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbls.mod new file mode 100644 index 00000000..70564bc4 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbls.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbmemc.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbmemc.mod new file mode 100644 index 00000000..45c76c10 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbmemc.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbtable.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbtable.mod new file mode 100644 index 00000000..95552ee1 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbtable.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbtime.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbtime.mod new file mode 100644 index 00000000..393779fc Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cbtime.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cdboot.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cdboot.img new file mode 100644 index 00000000..5305be41 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cdboot.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/chain.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/chain.mod new file mode 100644 index 00000000..27bd172c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/chain.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmdline_cat_test.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmdline_cat_test.mod new file mode 100644 index 00000000..f190a3b1 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmdline_cat_test.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmosdump.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmosdump.mod new file mode 100644 index 00000000..184107ad Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmosdump.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmostest.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmostest.mod new file mode 100644 index 00000000..db689ddf Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmostest.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmp.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmp.mod new file mode 100644 index 00000000..3585896f Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cmp.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/command.lst b/builder/hd-boot/grub/usr/lib/grub/i386-pc/command.lst new file mode 100644 index 00000000..d3d74ed4 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/i386-pc/command.lst @@ -0,0 +1,199 @@ +*acpi: acpi +*all_functional_test: functional_test +*background_image: gfxterm_background +*cat: cat +*cpuid: cpuid +*crc: hashsum +*cryptomount: cryptodisk +*drivemap: drivemap +*echo: echo +*extract_syslinux_entries_configfile: syslinuxcfg +*extract_syslinux_entries_source: syslinuxcfg +*file: file +*functional_test: functional_test +*gettext: gettext +*halt: halt +*hashsum: hashsum +*hdparm: hdparm +*hello: hello +*help: help +*hexdump: hexdump +*inb: iorw +*inl: iorw +*inw: iorw +*keystatus: keystatus +*kfreebsd: bsd +*knetbsd: bsd +*kopenbsd: bsd +*list_env: loadenv +*load_env: loadenv +*loopback: loopback +*ls: ls +*lsacpi: lsacpi +*lspci: lspci +*md5sum: hashsum +*menuentry: normal +*pcidump: pcidump +*plan9: plan9 +*probe: probe +*read_byte: memrw +*read_dword: memrw +*read_word: memrw +*regexp: regexp +*save_env: loadenv +*search: search +*sendkey: sendkey +*serial: serial +*setpci: setpci +*sha1sum: hashsum +*sha256sum: hashsum +*sha512sum: hashsum +*sleep: sleep +*submenu: normal +*syslinux_configfile: syslinuxcfg +*syslinux_source: syslinuxcfg +*terminfo: terminfo +*test_blockarg: test_blockarg +*testspeed: testspeed +*tr: tr +*trust: verify +*verify_detached: verify +*xnu_splash: xnu +*zfskey: zfscrypt +.: configfile +915resolution: 915resolution +[: test +authenticate: normal +background_color: gfxterm_background +backtrace: backtrace +badram: mmap +blocklist: blocklist +boot: boot +break: normal +cat: minicmd +cbmemc: cbmemc +chainloader: chain +clear: normal +cmosclean: cmostest +cmosdump: cmosdump +cmosset: cmostest +cmostest: cmostest +cmp: cmp +configfile: configfile +continue: normal +coreboot_boottime: cbtime +cutmem: mmap +date: date +distrust: verify +dump: minicmd +efiemu_loadcore: efiemu +efiemu_prepare: efiemu +efiemu_unload: efiemu +eval: eval +exit: minicmd +export: normal +extract_entries_configfile: configfile +extract_entries_source: configfile +extract_legacy_entries_configfile: legacycfg +extract_legacy_entries_source: legacycfg +false: true +freedos: freedos +gdbstub: gdb +gdbstub_break: gdb +gdbstub_stop: gdb +gptsync: gptsync +help: minicmd +hwmatch: hwmatch +initrd16: linux16 +initrd: linux +keymap: keylayouts +kfreebsd_loadenv: bsd +kfreebsd_module: bsd +kfreebsd_module_elf: bsd +knetbsd_module: bsd +knetbsd_module_elf: bsd +kopenbsd_ramdisk: bsd +legacy_check_password: legacycfg +legacy_configfile: legacycfg +legacy_initrd: legacycfg +legacy_initrd_nounzip: legacycfg +legacy_kernel: legacycfg +legacy_password: legacycfg +legacy_source: legacycfg +linux16: linux16 +linux: linux +list_trusted: verify +loadfont: font +lsapm: lsapm +lscoreboot: cbls +lsfonts: font +lsmmap: lsmmap +lsmod: minicmd +macppcbless: macbless +mactelbless: macbless +module2: multiboot2 +module: multiboot +multiboot2: multiboot2 +multiboot: multiboot +nativedisk: nativedisk +net_add_addr: net +net_add_dns: net +net_add_route: net +net_bootp: net +net_del_addr: net +net_del_dns: net +net_del_route: net +net_get_dhcp_option: net +net_ipv6_autoconf: net +net_ls_addr: net +net_ls_cards: net +net_ls_dns: net +net_ls_routes: net +net_nslookup: net +normal: normal +normal_exit: normal +ntldr: ntldr +outb: iorw +outl: iorw +outw: iorw +parttool: parttool +password: password +password_pbkdf2: password_pbkdf2 +play: play +pxechainloader: pxechain +read: read +reboot: reboot +return: normal +rmmod: minicmd +search.file: search_fs_file +search.fs_label: search_label +search.fs_uuid: search_fs_uuid +setparams: normal +shift: normal +source: configfile +terminal_input: terminal +terminal_output: terminal +test: test +testload: testload +time: time +true: true +truecrypt: truecrypt +usb: usbtest +vbeinfo: videoinfo +vbetest: videotest +videoinfo: videoinfo +videotest: videotest +write_byte: memrw +write_dword: memrw +write_word: memrw +xnu_devprop_load: xnu +xnu_kernel64: xnu +xnu_kernel: xnu +xnu_kext: xnu +xnu_kextdir: xnu +xnu_mkext: xnu +xnu_ramdisk: xnu +xnu_resume: xnu +xnu_uuid: xnu_uuid +zfs-bootfs: zfsinfo +zfsinfo: zfsinfo diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/config.h b/builder/hd-boot/grub/usr/lib/grub/i386-pc/config.h new file mode 100644 index 00000000..9360bfa4 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/i386-pc/config.h @@ -0,0 +1,64 @@ +#undef _LARGEFILE_SOURCE +#undef _FILE_OFFSET_BITS +#define _LARGEFILE_SOURCE +#define _FILE_OFFSET_BITS 64 +#if defined(__PPC__) && !defined(__powerpc__) +#define __powerpc__ 1 +#endif + +#define GCRYPT_NO_DEPRECATED 1 + +/* Define to 1 to enable disk cache statistics. */ +#define DISK_CACHE_STATS 0 +#define BOOT_TIME_STATS 0 +/* Define to 1 to make GRUB quieter at boot time. */ +#define QUIET_BOOT 0 + +#if defined (GRUB_BUILD) +#undef ENABLE_NLS +#define BUILD_SIZEOF_LONG 8 +#define BUILD_SIZEOF_VOID_P 8 +#if defined __APPLE__ +# if defined __BIG_ENDIAN__ +# define BUILD_WORDS_BIGENDIAN 1 +# else +# define BUILD_WORDS_BIGENDIAN 0 +# endif +#else +#define BUILD_WORDS_BIGENDIAN 0 +#endif +#elif defined (GRUB_UTIL) || !defined (GRUB_MACHINE) +#include +#else +#define HAVE_FONT_SOURCE 1 +/* Define if C symbols get an underscore after compilation. */ +#define HAVE_ASM_USCORE 0 +/* Define it to \"addr32\" or \"addr32;\" to make GAS happy. */ +#define ADDR32 addr32 +/* Define it to \"data32\" or \"data32;\" to make GAS happy. */ +#define DATA32 data32 +/* Define it to one of __bss_start, edata and _edata. */ +#define BSS_START_SYMBOL __bss_start +/* Define it to either end or _end. */ +#define END_SYMBOL end +/* Name of package. */ +#define PACKAGE "grub" +/* Version number of package. */ +#define VERSION "2.02~beta2" +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "GRUB 2.02~beta2-22" +/* Define to the version of this package. */ +#define PACKAGE_VERSION "2.02~beta2-22" +/* Define to the full name of this package. */ +#define PACKAGE_NAME "GRUB" +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "bug-grub@gnu.org" + +#define GRUB_TARGET_CPU "i386" +#define GRUB_PLATFORM "pc" + +#define RE_ENABLE_I18N 1 + +#define _GNU_SOURCE 1 + +#endif diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/configfile.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/configfile.mod new file mode 100644 index 00000000..79b1a5a2 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/configfile.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cpio.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cpio.mod new file mode 100644 index 00000000..eb54d389 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cpio.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cpio_be.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cpio_be.mod new file mode 100644 index 00000000..5669a76a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cpio_be.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cpuid.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cpuid.mod new file mode 100644 index 00000000..24c8c21e Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cpuid.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/crc64.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/crc64.mod new file mode 100644 index 00000000..7790e20c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/crc64.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/crypto.lst b/builder/hd-boot/grub/usr/lib/grub/i386-pc/crypto.lst new file mode 100644 index 00000000..77d9efc0 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/i386-pc/crypto.lst @@ -0,0 +1,45 @@ +RIJNDAEL: gcry_rijndael +RIJNDAEL192: gcry_rijndael +RIJNDAEL256: gcry_rijndael +AES128: gcry_rijndael +AES-128: gcry_rijndael +AES-192: gcry_rijndael +AES-256: gcry_rijndael +ADLER32: adler32 +CRC64: crc64 +ARCFOUR: gcry_arcfour +BLOWFISH: gcry_blowfish +CAMELLIA128: gcry_camellia +CAMELLIA192: gcry_camellia +CAMELLIA256: gcry_camellia +CAST5: gcry_cast5 +CRC32: gcry_crc +CRC32RFC1510: gcry_crc +CRC24RFC2440: gcry_crc +DES: gcry_des +3DES: gcry_des +DSA: gcry_dsa +IDEA: gcry_idea +MD4: gcry_md4 +MD5: gcry_md5 +RFC2268_40: gcry_rfc2268 +AES: gcry_rijndael +AES192: gcry_rijndael +AES256: gcry_rijndael +RIPEMD160: gcry_rmd160 +RSA: gcry_rsa +SEED: gcry_seed +SERPENT128: gcry_serpent +SERPENT192: gcry_serpent +SERPENT256: gcry_serpent +SHA1: gcry_sha1 +SHA224: gcry_sha256 +SHA256: gcry_sha256 +SHA512: gcry_sha512 +SHA384: gcry_sha512 +TIGER192: gcry_tiger +TIGER: gcry_tiger +TIGER2: gcry_tiger +TWOFISH: gcry_twofish +TWOFISH128: gcry_twofish +WHIRLPOOL: gcry_whirlpool diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/crypto.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/crypto.mod new file mode 100644 index 00000000..64a30bf8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/crypto.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cryptodisk.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cryptodisk.mod new file mode 100644 index 00000000..06960968 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cryptodisk.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/cs5536.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cs5536.mod new file mode 100644 index 00000000..0f3e5200 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/cs5536.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/date.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/date.mod new file mode 100644 index 00000000..e4fadcad Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/date.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/datehook.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/datehook.mod new file mode 100644 index 00000000..ebaaa38a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/datehook.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/datetime.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/datetime.mod new file mode 100644 index 00000000..79030a8c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/datetime.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/disk.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/disk.mod new file mode 100644 index 00000000..0bc49673 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/disk.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/diskboot.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/diskboot.img new file mode 100644 index 00000000..fac4a254 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/diskboot.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/diskfilter.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/diskfilter.mod new file mode 100644 index 00000000..bf6d1753 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/diskfilter.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/div_test.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/div_test.mod new file mode 100644 index 00000000..4cd6c723 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/div_test.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/dm_nv.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/dm_nv.mod new file mode 100644 index 00000000..053b45f3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/dm_nv.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/drivemap.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/drivemap.mod new file mode 100644 index 00000000..9e39846c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/drivemap.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/echo.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/echo.mod new file mode 100644 index 00000000..8360eb19 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/echo.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu.mod new file mode 100644 index 00000000..13528dc7 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu32.o b/builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu32.o new file mode 100644 index 00000000..3e379a8c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu32.o differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu64.o b/builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu64.o new file mode 100644 index 00000000..59924f2c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/efiemu64.o differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ehci.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ehci.mod new file mode 100644 index 00000000..1b40ca91 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ehci.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/elf.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/elf.mod new file mode 100644 index 00000000..2a7e9e5f Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/elf.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/eval.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/eval.mod new file mode 100644 index 00000000..e7057389 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/eval.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/exfat.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/exfat.mod new file mode 100644 index 00000000..d276a8fa Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/exfat.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/exfctest.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/exfctest.mod new file mode 100644 index 00000000..607a963f Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/exfctest.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ext2.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ext2.mod new file mode 100644 index 00000000..a4d3eaba Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ext2.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/extcmd.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/extcmd.mod new file mode 100644 index 00000000..9ba69f99 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/extcmd.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/fat.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/fat.mod new file mode 100644 index 00000000..1c48d791 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/fat.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/file.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/file.mod new file mode 100644 index 00000000..82972845 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/file.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/font.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/font.mod new file mode 100644 index 00000000..b19a063c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/font.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/freedos.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/freedos.mod new file mode 100644 index 00000000..5d67aec3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/freedos.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/fs.lst b/builder/hd-boot/grub/usr/lib/grub/i386-pc/fs.lst new file mode 100644 index 00000000..a069ccc6 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/i386-pc/fs.lst @@ -0,0 +1,36 @@ +affs +afs +bfs +btrfs +cbfs +cpio +cpio_be +exfat +ext2 +fat +hfs +hfsplus +iso9660 +jfs +minix +minix2 +minix2_be +minix3 +minix3_be +minix_be +newc +nilfs2 +ntfs +odc +procfs +reiserfs +romfs +sfs +squash4 +tar +udf +ufs1 +ufs1_be +ufs2 +xfs +zfs diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/fshelp.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/fshelp.mod new file mode 100644 index 00000000..d54f6df4 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/fshelp.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/functional_test.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/functional_test.mod new file mode 100644 index 00000000..8db423b8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/functional_test.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2hdr.bin b/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2hdr.bin new file mode 100644 index 00000000..898aeb9c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2hdr.bin differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2hdr.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2hdr.img new file mode 100644 index 00000000..898aeb9c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2hdr.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2ldr.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2ldr.img new file mode 100644 index 00000000..7afca852 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2ldr.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2ldr.mbr b/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2ldr.mbr new file mode 100644 index 00000000..2cdd88ac Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/g2ldr.mbr differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_arcfour.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_arcfour.mod new file mode 100644 index 00000000..2e1751f2 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_arcfour.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_blowfish.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_blowfish.mod new file mode 100644 index 00000000..28cd0a52 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_blowfish.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_camellia.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_camellia.mod new file mode 100644 index 00000000..c612117b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_camellia.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_cast5.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_cast5.mod new file mode 100644 index 00000000..da19f6d1 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_cast5.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_crc.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_crc.mod new file mode 100644 index 00000000..70f16384 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_crc.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_des.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_des.mod new file mode 100644 index 00000000..ac04ad0d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_des.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_dsa.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_dsa.mod new file mode 100644 index 00000000..408062ca Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_dsa.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_idea.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_idea.mod new file mode 100644 index 00000000..86ae8aa3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_idea.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_md4.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_md4.mod new file mode 100644 index 00000000..a832bd8a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_md4.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_md5.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_md5.mod new file mode 100644 index 00000000..dfaf0ff2 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_md5.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rfc2268.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rfc2268.mod new file mode 100644 index 00000000..4bc8ad54 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rfc2268.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rijndael.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rijndael.mod new file mode 100644 index 00000000..dedd7c38 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rijndael.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rmd160.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rmd160.mod new file mode 100644 index 00000000..22ea32e9 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rmd160.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rsa.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rsa.mod new file mode 100644 index 00000000..556aa5c8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_rsa.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_seed.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_seed.mod new file mode 100644 index 00000000..7dfd7459 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_seed.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_serpent.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_serpent.mod new file mode 100644 index 00000000..56d10ac3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_serpent.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha1.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha1.mod new file mode 100644 index 00000000..5651a83e Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha1.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha256.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha256.mod new file mode 100644 index 00000000..c199941b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha256.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha512.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha512.mod new file mode 100644 index 00000000..735e6e1c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_sha512.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_tiger.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_tiger.mod new file mode 100644 index 00000000..416143eb Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_tiger.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_twofish.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_twofish.mod new file mode 100644 index 00000000..7d742a37 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_twofish.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_whirlpool.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_whirlpool.mod new file mode 100644 index 00000000..22ec8020 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gcry_whirlpool.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gdb.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gdb.mod new file mode 100644 index 00000000..6c08727c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gdb.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/geli.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/geli.mod new file mode 100644 index 00000000..e3c7e6db Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/geli.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gettext.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gettext.mod new file mode 100644 index 00000000..da40045a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gettext.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxmenu.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxmenu.mod new file mode 100644 index 00000000..b264759d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxmenu.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm.mod new file mode 100644 index 00000000..66db6977 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm_background.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm_background.mod new file mode 100644 index 00000000..c0411e61 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm_background.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm_menu.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm_menu.mod new file mode 100644 index 00000000..d9bfe3d3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gfxterm_menu.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gptsync.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gptsync.mod new file mode 100644 index 00000000..9b7d6a33 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gptsync.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/grldr.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/grldr.img new file mode 100644 index 00000000..fece2141 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/grldr.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/grub-bios-setup b/builder/hd-boot/grub/usr/lib/grub/i386-pc/grub-bios-setup new file mode 100755 index 00000000..ffb68851 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/grub-bios-setup differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/grub-ntldr-img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/grub-ntldr-img new file mode 100755 index 00000000..cc3e2196 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/grub-ntldr-img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/gzio.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gzio.mod new file mode 100644 index 00000000..0a38a077 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/gzio.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/halt.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/halt.mod new file mode 100644 index 00000000..313eaa4e Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/halt.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/hashsum.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hashsum.mod new file mode 100644 index 00000000..b206c5ff Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hashsum.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/hdparm.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hdparm.mod new file mode 100644 index 00000000..aced84cb Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hdparm.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/hello.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hello.mod new file mode 100644 index 00000000..afb2c8aa Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hello.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/help.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/help.mod new file mode 100644 index 00000000..6d6e7f84 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/help.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/hexdump.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hexdump.mod new file mode 100644 index 00000000..cbb8619d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hexdump.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/hfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hfs.mod new file mode 100644 index 00000000..a33bb58a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/hfsplus.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hfsplus.mod new file mode 100644 index 00000000..5bc692d0 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hfsplus.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/hfspluscomp.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hfspluscomp.mod new file mode 100644 index 00000000..970baa1b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hfspluscomp.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/http.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/http.mod new file mode 100644 index 00000000..87b66c7b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/http.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/hwmatch.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hwmatch.mod new file mode 100644 index 00000000..d18c237b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/hwmatch.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/iorw.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/iorw.mod new file mode 100644 index 00000000..61bef78a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/iorw.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/iso9660.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/iso9660.mod new file mode 100644 index 00000000..7d9d9fda Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/iso9660.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/jfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/jfs.mod new file mode 100644 index 00000000..593561d6 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/jfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/jpeg.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/jpeg.mod new file mode 100644 index 00000000..68c728c0 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/jpeg.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/kernel.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/kernel.img new file mode 100644 index 00000000..0be0a00b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/kernel.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/keylayouts.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/keylayouts.mod new file mode 100644 index 00000000..16cf77d5 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/keylayouts.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/keystatus.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/keystatus.mod new file mode 100644 index 00000000..2bb7ee87 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/keystatus.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ldm.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ldm.mod new file mode 100644 index 00000000..cb79ead4 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ldm.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/legacy_password_test.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/legacy_password_test.mod new file mode 100644 index 00000000..a2cae39a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/legacy_password_test.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/legacycfg.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/legacycfg.mod new file mode 100644 index 00000000..f9d4c0b3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/legacycfg.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/linux.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/linux.mod new file mode 100644 index 00000000..909678cd Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/linux.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/linux16.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/linux16.mod new file mode 100644 index 00000000..77369b11 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/linux16.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/lnxboot.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lnxboot.img new file mode 100644 index 00000000..a60fcf2c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lnxboot.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/loadenv.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/loadenv.mod new file mode 100644 index 00000000..b9086e3f Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/loadenv.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/loopback.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/loopback.mod new file mode 100644 index 00000000..0f3826d7 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/loopback.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ls.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ls.mod new file mode 100644 index 00000000..5b73a3bf Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ls.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/lsacpi.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lsacpi.mod new file mode 100644 index 00000000..a8fad6f1 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lsacpi.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/lsapm.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lsapm.mod new file mode 100644 index 00000000..40c471d8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lsapm.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/lsmmap.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lsmmap.mod new file mode 100644 index 00000000..7b9ad66d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lsmmap.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/lspci.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lspci.mod new file mode 100644 index 00000000..4035e6ea Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lspci.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/luks.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/luks.mod new file mode 100644 index 00000000..d692d600 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/luks.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/lvm.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lvm.mod new file mode 100644 index 00000000..afd9e8d4 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lvm.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/lzma_decompress.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lzma_decompress.img new file mode 100644 index 00000000..0f0003b3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lzma_decompress.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/lzopio.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lzopio.mod new file mode 100644 index 00000000..5b1781a8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/lzopio.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/macbless.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/macbless.mod new file mode 100644 index 00000000..7493c8d3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/macbless.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/macho.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/macho.mod new file mode 100644 index 00000000..bd1c775d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/macho.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/mda_text.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mda_text.mod new file mode 100644 index 00000000..8d5c22d4 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mda_text.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid09.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid09.mod new file mode 100644 index 00000000..c039a5ed Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid09.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid09_be.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid09_be.mod new file mode 100644 index 00000000..d937a6f1 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid09_be.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid1x.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid1x.mod new file mode 100644 index 00000000..9bfe1b3d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mdraid1x.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/memdisk.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/memdisk.mod new file mode 100644 index 00000000..98091754 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/memdisk.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/memrw.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/memrw.mod new file mode 100644 index 00000000..3d9a985a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/memrw.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/minicmd.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minicmd.mod new file mode 100644 index 00000000..1f16aa7a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minicmd.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix.mod new file mode 100644 index 00000000..d9ead717 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix2.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix2.mod new file mode 100644 index 00000000..31926be9 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix2.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix2_be.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix2_be.mod new file mode 100644 index 00000000..fbd68901 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix2_be.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix3.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix3.mod new file mode 100644 index 00000000..3ffa246b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix3.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix3_be.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix3_be.mod new file mode 100644 index 00000000..e3832790 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix3_be.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix_be.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix_be.mod new file mode 100644 index 00000000..abfd68b0 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/minix_be.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/mmap.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mmap.mod new file mode 100644 index 00000000..9160bec3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mmap.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/moddep.lst b/builder/hd-boot/grub/usr/lib/grub/i386-pc/moddep.lst new file mode 100644 index 00000000..57590dd9 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/i386-pc/moddep.lst @@ -0,0 +1,259 @@ +squash4: xzio gzio lzopio fshelp +search_fs_uuid: +legacycfg: linux gcry_md5 crypto password normal +date: datetime normal +bfs: +uhci: pci usb +multiboot2: boot video net acpi relocator mmap lsapm vbe +gcry_twofish: crypto +cpio_be: archelp +cmostest: +priority_queue: +gcry_rijndael: crypto +freedos: boot video relocator chain +echo: extcmd +cpio: archelp +xzio: crypto +part_sun: +hfspluscomp: gzio hfsplus +gcry_sha512: crypto +gcry_cast5: crypto +boot: +setjmp_test: setjmp functional_test +odc: archelp +ls: extcmd normal +gzio: +cbmemc: cbtable terminfo normal +video: +test_blockarg: extcmd normal +gfxterm: video font +cbtable: +gcry_tiger: crypto +gcry_serpent: crypto +aout: +macbless: disk +gcry_blowfish: crypto +trig: +plan9: boot video extcmd relocator +extcmd: +at_keyboard: boot keylayouts +videoinfo: video +testspeed: extcmd normal +pxe: boot net +minix: +keylayouts: +xnu_uuid: gcry_md5 +usbtest: usb +usbms: usb scsi +reboot: relocator +morse: +help: extcmd normal +part_msdos: +http: net +gdb: backtrace serial +gcry_rsa: mpi verify +cbtime: cbtable +blocklist: +probe: extcmd +pbkdf2: crypto +gcry_rfc2268: crypto +ufs1_be: +nativedisk: +gcry_camellia: crypto +fat: +exfctest: functional_test +pci: +parttool: normal +lzopio: crypto +linux: boot video relocator mmap vbe normal +gcry_md4: crypto +zfsinfo: zfs +usb_keyboard: keylayouts usb +pxechain: boot video pxe relocator +gcry_md5: crypto +fshelp: +ehci: boot pci usb cs5536 +bitmap_scale: bitmap +ata: scsi +datetime: +usbserial_common: usb serial +syslinuxcfg: extcmd normal +net: priority_queue boot datetime bufio +gcry_des: crypto +div_test: functional_test +time: +reiserfs: fshelp +dm_nv: diskfilter +datehook: datetime normal +mdraid09_be: diskfilter +efiemu: crypto acpi cpuid gcry_crc +backtrace: +ahci: boot pci ata +kernel: +video_cirrus: video pci video_fb +part_plan: +gcry_seed: crypto +minix_be: +crypto: +video_colors: +test: +terminal: +part_dvh: +lsacpi: extcmd acpi +jpeg: bufio bitmap +bsd: boot video aout extcmd gcry_md5 crypto cpuid elf relocator serial mmap vbe +memdisk: +gfxmenu: video gfxterm trig bitmap_scale video_colors bitmap normal font +cmp: +acpi: extcmd mmap +xfs: fshelp +elf: +cpuid: extcmd +affs: fshelp +usb: pci +videotest: video gfxmenu font +tr: extcmd +testload: +relocator: mmap +play: +gfxterm_menu: video_fb functional_test procfs normal font +cbfs: archelp +adler32: crypto +progress: normal +password: crypto normal +part_sunpc: +video_fb: +tftp: priority_queue net +sleep: extcmd normal +serial: extcmd terminfo +search_fs_file: +gcry_sha256: crypto +gcry_rmd160: crypto +exfat: +search: search_fs_uuid extcmd search_fs_file search_label +mdraid09: diskfilter +chain: boot video relocator +mpi: crypto +memrw: extcmd +cs5536: pci +password_pbkdf2: gcry_sha512 pbkdf2 crypto normal +mdraid1x: diskfilter +linux16: boot video relocator mmap +gcry_crc: crypto +configfile: normal +zfscrypt: gcry_rijndael extcmd pbkdf2 crypto zfs gcry_sha1 +signature_test: functional_test procfs +raid5rec: diskfilter +pcidump: extcmd pci +gcry_arcfour: crypto +sendkey: boot extcmd +part_dfly: +minix2_be: +gettext: +pbkdf2_test: pbkdf2 gcry_sha1 functional_test +hello: extcmd +vga_text: +usbserial_pl2303: usbserial_common usb serial +hashsum: extcmd crypto normal +xnu_uuid_test: functional_test +regexp: extcmd normal +part_gpt: +ohci: boot pci usb cs5536 +gptsync: disk +zfs: gzio +part_apple: +hdparm: extcmd +bufio: +btrfs: gzio lzopio +bitmap: +true: +terminfo: extcmd +romfs: fshelp +ntfscomp: ntfs +hfs: +gcry_dsa: mpi verify +cmdline_cat_test: video_fb functional_test procfs normal font +biosdisk: +ufs1: +offsetio: +ntldr: boot video relocator chain +legacy_password_test: legacycfg functional_test +setjmp: +ufs2: +nilfs2: fshelp +lsmmap: +gcry_sha1: crypto +cmosdump: +915resolution: +mmap: boot +tar: archelp +png: bufio bitmap +lspci: extcmd pci +hfsplus: fshelp +cbls: cbtable +tga: bufio bitmap +minix2: +setpci: extcmd pci +scsi: +pata: pci ata +minix3: +lvm: diskfilter +lsapm: +functional_test: video extcmd video_fb btrfs +eval: normal +iso9660: fshelp +crc64: crypto +vbe: video video_fb +udf: fshelp +search_label: +raid6rec: diskfilter +msdospart: parttool disk +mda_text: +archelp: +procfs: +minix3_be: +halt: extcmd acpi +xnu: boot video extcmd bitmap_scale efiemu relocator bitmap macho +read: +multiboot: boot video net relocator mmap lsapm vbe +keystatus: extcmd +cryptodisk: extcmd crypto procfs +truecrypt: boot gzio video relocator mmap +normal: boot extcmd crypto terminal gettext +geli: gcry_sha512 pbkdf2 crypto gcry_sha256 cryptodisk +spkmodem: terminfo +gcry_idea: crypto +video_bochs: video pci video_fb +verify: extcmd crypto mpi gcry_sha1 +sfs: fshelp +part_amiga: +luks: pbkdf2 crypto cryptodisk +loopback: extcmd +jfs: +gfxterm_background: gfxterm video extcmd bitmap_scale video_colors bitmap +usbserial_usbdebug: usbserial_common usb serial +part_acorn: +newc: archelp +macho: +iorw: extcmd +hwmatch: pci normal +cat: extcmd +afs: +sleep_test: datetime functional_test +ldm: part_msdos part_gpt diskfilter +hexdump: extcmd +disk: +usbserial_ftdi: usbserial_common usb serial +minicmd: +loadenv: extcmd disk +gcry_whirlpool: crypto +drivemap: boot extcmd mmap +vga: video video_fb +part_bsd: part_msdos +font: video bufio +ext2: fshelp +diskfilter: +videotest_checksum: video_fb functional_test font +file: extcmd elf offsetio macho +ntfs: fshelp +all_video: vbe vga video_bochs video_cirrus diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/modinfo.sh b/builder/hd-boot/grub/usr/lib/grub/i386-pc/modinfo.sh new file mode 100755 index 00000000..a71399e3 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/i386-pc/modinfo.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +# User-controllable options +grub_modinfo_target_cpu=i386 +grub_modinfo_platform=pc +grub_disk_cache_stats=0 +grub_boot_time_stats=0 +grub_have_font_source=1 + +# Autodetected config +grub_have_asm_uscore=0 +grub_i8086_addr32="addr32" +grub_i8086_data32="data32" +grub_bss_start_symbol="__bss_start" +grub_end_symbol="end" + +# Build environment +grub_target_cc='gcc-4.9' +grub_target_cc_version='gcc-4.9 (Debian 4.9.2-10) 4.9.2' +grub_target_cflags=' -Os -Wall -W -Wshadow -Wpointer-arith -Wundef -Wchar-subscripts -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-braces -Wmissing-format-attribute -Wmultichar -Wparentheses -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wswitch -Wtrigraphs -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings -Wnested-externs -Wstrict-prototypes -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations -Wextra -Wattributes -Wendif-labels -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wmissing-field-initializers -Wnonnull -Woverflow -Wvla -Wpointer-to-int-cast -Wstrict-aliasing -Wvariadic-macros -Wvolatile-register-var -Wpointer-sign -Wmissing-prototypes -Wmissing-declarations -Wformat=2 -march=i386 -m32 -mrtd -mregparm=3 -falign-jumps=1 -falign-loops=1 -falign-functions=1 -freg-struct-return -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -fno-asynchronous-unwind-tables -Qn -fno-stack-protector -Wtrampolines -Werror' +grub_target_cppflags='-Wno-unused-but-set-variable -Wall -W -I$(top_srcdir)/include -I$(top_builddir)/include -DGRUB_MACHINE_PCBIOS=1 -DGRUB_MACHINE=I386_PC -m32 -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.9/include' +grub_target_ccasflags=' -g -m32' +grub_target_ldflags=' -m32 -Wl,-melf_i386 -Wl,--build-id=none' +grub_target_strip='strip' +grub_target_nm='nm' +grub_target_ranlib='ranlib' +grub_target_objconf='' +grub_target_obj2elf='' + +# Version +grub_version="2.02~beta2" +grub_package="grub" +grub_package_string="GRUB 2.02~beta2-22" +grub_package_version="2.02~beta2-22" +grub_package_name="GRUB" +grub_package_bugreport="bug-grub@gnu.org" diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/morse.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/morse.mod new file mode 100644 index 00000000..4f18356d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/morse.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/mpi.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mpi.mod new file mode 100644 index 00000000..bb6ebcd7 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/mpi.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/msdospart.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/msdospart.mod new file mode 100644 index 00000000..80b8bed0 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/msdospart.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/multiboot.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/multiboot.mod new file mode 100644 index 00000000..bda00446 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/multiboot.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/multiboot2.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/multiboot2.mod new file mode 100644 index 00000000..87676590 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/multiboot2.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/nativedisk.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/nativedisk.mod new file mode 100644 index 00000000..19dfd19b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/nativedisk.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/net.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/net.mod new file mode 100644 index 00000000..9170aeff Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/net.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/newc.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/newc.mod new file mode 100644 index 00000000..fb2cede0 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/newc.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/nilfs2.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/nilfs2.mod new file mode 100644 index 00000000..606b6c4b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/nilfs2.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/normal.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/normal.mod new file mode 100644 index 00000000..1cad701d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/normal.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ntfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ntfs.mod new file mode 100644 index 00000000..4fe93d8e Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ntfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ntfscomp.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ntfscomp.mod new file mode 100644 index 00000000..73b700ba Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ntfscomp.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ntldr.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ntldr.mod new file mode 100644 index 00000000..dd2a454f Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ntldr.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/odc.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/odc.mod new file mode 100644 index 00000000..a3c17821 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/odc.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/offsetio.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/offsetio.mod new file mode 100644 index 00000000..d780305d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/offsetio.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ohci.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ohci.mod new file mode 100644 index 00000000..9e16a072 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ohci.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_acorn.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_acorn.mod new file mode 100644 index 00000000..e00a4d01 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_acorn.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_amiga.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_amiga.mod new file mode 100644 index 00000000..267be0a7 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_amiga.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_apple.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_apple.mod new file mode 100644 index 00000000..e79cf7e8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_apple.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_bsd.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_bsd.mod new file mode 100644 index 00000000..1e08919d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_bsd.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_dfly.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_dfly.mod new file mode 100644 index 00000000..7a9de1cd Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_dfly.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_dvh.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_dvh.mod new file mode 100644 index 00000000..2b77179e Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_dvh.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_gpt.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_gpt.mod new file mode 100644 index 00000000..d412b363 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_gpt.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_msdos.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_msdos.mod new file mode 100644 index 00000000..8964d7d9 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_msdos.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_plan.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_plan.mod new file mode 100644 index 00000000..e4051eac Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_plan.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_sun.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_sun.mod new file mode 100644 index 00000000..f14fef52 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_sun.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_sunpc.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_sunpc.mod new file mode 100644 index 00000000..2041cc9c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/part_sunpc.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/partmap.lst b/builder/hd-boot/grub/usr/lib/grub/i386-pc/partmap.lst new file mode 100644 index 00000000..761233aa --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/i386-pc/partmap.lst @@ -0,0 +1,11 @@ +part_acorn +part_amiga +part_apple +part_bsd +part_dfly +part_dvh +part_gpt +part_msdos +part_plan +part_sun +part_sunpc diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/parttool.lst b/builder/hd-boot/grub/usr/lib/grub/i386-pc/parttool.lst new file mode 100644 index 00000000..68b4b5c4 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/i386-pc/parttool.lst @@ -0,0 +1 @@ +msdos: msdospart diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/parttool.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/parttool.mod new file mode 100644 index 00000000..7abf0ff6 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/parttool.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/password.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/password.mod new file mode 100644 index 00000000..82ed73db Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/password.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/password_pbkdf2.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/password_pbkdf2.mod new file mode 100644 index 00000000..ae3255cd Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/password_pbkdf2.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/pata.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pata.mod new file mode 100644 index 00000000..c4b319aa Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pata.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/pbkdf2.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pbkdf2.mod new file mode 100644 index 00000000..c7d5b2bc Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pbkdf2.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/pbkdf2_test.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pbkdf2_test.mod new file mode 100644 index 00000000..bcf2c83c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pbkdf2_test.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/pci.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pci.mod new file mode 100644 index 00000000..41f51f70 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pci.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/pcidump.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pcidump.mod new file mode 100644 index 00000000..ceed30a0 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pcidump.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/plan9.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/plan9.mod new file mode 100644 index 00000000..a0ca8a67 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/plan9.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/play.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/play.mod new file mode 100644 index 00000000..53993491 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/play.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/png.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/png.mod new file mode 100644 index 00000000..57c7ce0b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/png.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/priority_queue.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/priority_queue.mod new file mode 100644 index 00000000..b4e0b0d6 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/priority_queue.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/probe.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/probe.mod new file mode 100644 index 00000000..dce09c82 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/probe.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/procfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/procfs.mod new file mode 100644 index 00000000..767b7814 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/procfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/progress.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/progress.mod new file mode 100644 index 00000000..c105b8b3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/progress.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/pxe.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pxe.mod new file mode 100644 index 00000000..e2314ba1 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pxe.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/pxeboot.img b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pxeboot.img new file mode 100644 index 00000000..42b3f356 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pxeboot.img differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/pxechain.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pxechain.mod new file mode 100644 index 00000000..4c446a4d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/pxechain.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/raid5rec.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/raid5rec.mod new file mode 100644 index 00000000..5166369a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/raid5rec.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/raid6rec.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/raid6rec.mod new file mode 100644 index 00000000..2765f488 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/raid6rec.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/read.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/read.mod new file mode 100644 index 00000000..e3372503 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/read.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/reboot.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/reboot.mod new file mode 100644 index 00000000..74b69439 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/reboot.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/regexp.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/regexp.mod new file mode 100644 index 00000000..81692106 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/regexp.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/reiserfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/reiserfs.mod new file mode 100644 index 00000000..8f6d81f7 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/reiserfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/relocator.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/relocator.mod new file mode 100644 index 00000000..f32a9eb2 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/relocator.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/romfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/romfs.mod new file mode 100644 index 00000000..9b556f2b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/romfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/scsi.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/scsi.mod new file mode 100644 index 00000000..6477e83b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/scsi.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/search.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/search.mod new file mode 100644 index 00000000..9c574c2c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/search.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/search_fs_file.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/search_fs_file.mod new file mode 100644 index 00000000..cdcf97ba Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/search_fs_file.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/search_fs_uuid.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/search_fs_uuid.mod new file mode 100644 index 00000000..6c30a007 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/search_fs_uuid.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/search_label.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/search_label.mod new file mode 100644 index 00000000..181a0b29 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/search_label.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/sendkey.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/sendkey.mod new file mode 100644 index 00000000..6e69eaad Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/sendkey.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/serial.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/serial.mod new file mode 100644 index 00000000..96f0203d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/serial.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/setjmp.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/setjmp.mod new file mode 100644 index 00000000..7c6a4be8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/setjmp.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/setjmp_test.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/setjmp_test.mod new file mode 100644 index 00000000..ca8a1ad5 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/setjmp_test.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/setpci.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/setpci.mod new file mode 100644 index 00000000..26f05466 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/setpci.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/sfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/sfs.mod new file mode 100644 index 00000000..4abffef1 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/sfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/signature_test.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/signature_test.mod new file mode 100644 index 00000000..91beba57 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/signature_test.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/sleep.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/sleep.mod new file mode 100644 index 00000000..4bc8d967 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/sleep.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/sleep_test.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/sleep_test.mod new file mode 100644 index 00000000..63c81598 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/sleep_test.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/spkmodem.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/spkmodem.mod new file mode 100644 index 00000000..de912cc9 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/spkmodem.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/squash4.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/squash4.mod new file mode 100644 index 00000000..60174bfa Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/squash4.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/syslinuxcfg.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/syslinuxcfg.mod new file mode 100644 index 00000000..3f9b766d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/syslinuxcfg.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/tar.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/tar.mod new file mode 100644 index 00000000..6f8177c3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/tar.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/terminal.lst b/builder/hd-boot/grub/usr/lib/grub/i386-pc/terminal.lst new file mode 100644 index 00000000..2cb224c4 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/i386-pc/terminal.lst @@ -0,0 +1,11 @@ +iat_keyboard: at_keyboard +iserial: serial +iserial_*: serial +oaudio: morse +ocbmemc: cbmemc +ogfxterm: gfxterm +omda_text: mda_text +oserial: serial +oserial_*: serial +ospkmodem: spkmodem +ovga_text: vga_text diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/terminal.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/terminal.mod new file mode 100644 index 00000000..342a6ad0 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/terminal.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/terminfo.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/terminfo.mod new file mode 100644 index 00000000..fcccee94 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/terminfo.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/test.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/test.mod new file mode 100644 index 00000000..5891c3b3 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/test.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/test_blockarg.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/test_blockarg.mod new file mode 100644 index 00000000..dee55087 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/test_blockarg.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/testload.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/testload.mod new file mode 100644 index 00000000..0ac083e9 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/testload.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/testspeed.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/testspeed.mod new file mode 100644 index 00000000..a09473b2 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/testspeed.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/tftp.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/tftp.mod new file mode 100644 index 00000000..280dfe6f Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/tftp.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/tga.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/tga.mod new file mode 100644 index 00000000..eb803994 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/tga.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/time.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/time.mod new file mode 100644 index 00000000..30a9675f Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/time.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/tr.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/tr.mod new file mode 100644 index 00000000..c152685a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/tr.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/trig.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/trig.mod new file mode 100644 index 00000000..25bcb5f4 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/trig.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/true.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/true.mod new file mode 100644 index 00000000..1306c9bc Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/true.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/truecrypt.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/truecrypt.mod new file mode 100644 index 00000000..2c81fe7e Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/truecrypt.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/udf.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/udf.mod new file mode 100644 index 00000000..a341553f Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/udf.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs1.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs1.mod new file mode 100644 index 00000000..25a49ce8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs1.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs1_be.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs1_be.mod new file mode 100644 index 00000000..02e5c6c1 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs1_be.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs2.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs2.mod new file mode 100644 index 00000000..b52a9680 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/ufs2.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/uhci.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/uhci.mod new file mode 100644 index 00000000..5f4e79f4 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/uhci.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/usb.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usb.mod new file mode 100644 index 00000000..69d91a03 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usb.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/usb_keyboard.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usb_keyboard.mod new file mode 100644 index 00000000..2ed75fb0 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usb_keyboard.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbms.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbms.mod new file mode 100644 index 00000000..8c3d3504 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbms.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_common.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_common.mod new file mode 100644 index 00000000..313ea5dc Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_common.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_ftdi.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_ftdi.mod new file mode 100644 index 00000000..b24b55d9 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_ftdi.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_pl2303.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_pl2303.mod new file mode 100644 index 00000000..19afe10e Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_pl2303.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_usbdebug.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_usbdebug.mod new file mode 100644 index 00000000..4566b70a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbserial_usbdebug.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbtest.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbtest.mod new file mode 100644 index 00000000..1115030c Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/usbtest.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/vbe.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/vbe.mod new file mode 100644 index 00000000..b2784dad Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/vbe.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/verify.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/verify.mod new file mode 100644 index 00000000..da245f6d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/verify.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/vga.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/vga.mod new file mode 100644 index 00000000..e119f751 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/vga.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/vga_text.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/vga_text.mod new file mode 100644 index 00000000..e7e0c361 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/vga_text.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/video.lst b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video.lst new file mode 100644 index 00000000..6ca853e6 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video.lst @@ -0,0 +1,4 @@ +vbe +vga +video_bochs +video_cirrus diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/video.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video.mod new file mode 100644 index 00000000..764aad21 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_bochs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_bochs.mod new file mode 100644 index 00000000..8ed2014d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_bochs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_cirrus.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_cirrus.mod new file mode 100644 index 00000000..dbd7128d Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_cirrus.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_colors.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_colors.mod new file mode 100644 index 00000000..46f967c8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_colors.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_fb.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_fb.mod new file mode 100644 index 00000000..94e0ca01 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/video_fb.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/videoinfo.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/videoinfo.mod new file mode 100644 index 00000000..eb10e902 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/videoinfo.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/videotest.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/videotest.mod new file mode 100644 index 00000000..52b56f3b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/videotest.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/videotest_checksum.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/videotest_checksum.mod new file mode 100644 index 00000000..ef61e479 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/videotest_checksum.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/xfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/xfs.mod new file mode 100644 index 00000000..93ef00dc Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/xfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu.mod new file mode 100644 index 00000000..8db83c7b Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu_uuid.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu_uuid.mod new file mode 100644 index 00000000..f264005a Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu_uuid.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu_uuid_test.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu_uuid_test.mod new file mode 100644 index 00000000..7713bdd4 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/xnu_uuid_test.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/xzio.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/xzio.mod new file mode 100644 index 00000000..11f5d4f6 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/xzio.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/zfs.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/zfs.mod new file mode 100644 index 00000000..c780fea8 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/zfs.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/zfscrypt.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/zfscrypt.mod new file mode 100644 index 00000000..06e1fd79 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/zfscrypt.mod differ diff --git a/builder/hd-boot/grub/usr/lib/grub/i386-pc/zfsinfo.mod b/builder/hd-boot/grub/usr/lib/grub/i386-pc/zfsinfo.mod new file mode 100644 index 00000000..2cc31c26 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/grub/i386-pc/zfsinfo.mod differ diff --git a/builder/hd-boot/grub/usr/lib/linux-boot-probes/50mounted-tests b/builder/hd-boot/grub/usr/lib/linux-boot-probes/50mounted-tests new file mode 100755 index 00000000..41e26e6d --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/linux-boot-probes/50mounted-tests @@ -0,0 +1,82 @@ +#!/bin/sh +# Sub-tests that require a mounted partition. +. /usr/share/os-prober/common.sh +set -e + +partition="$1" + +types="$(fs_type "$partition")" || types=NOT-DETECTED +if [ "$types" = NOT-DETECTED ]; then + debug "$1 type not recognised; skipping" + exit 0 +elif [ "$types" = swap ]; then + debug "$1 is a swap partition; skipping" + exit 0 +elif [ "$types" = crypto_LUKS ]; then + debug "$1 is a LUKS partition; skipping" + exit 0 +elif [ "$types" = ntfs ]; then + if type ntfs-3g >/dev/null 2>&1; then + types='ntfs-3g ntfs' + fi +elif [ -z "$types" ]; then + if type cryptsetup >/dev/null 2>&1 && \ + cryptsetup luksDump "$partition" >/dev/null 2>&1; then + debug "$1 is a LUKS partition; skipping" + exit 0 + fi + types="$(grep -v nodev /proc/filesystems)" +fi + +tmpmnt=/var/lib/os-prober/mount +if [ ! -d "$tmpmnt" ]; then + mkdir "$tmpmnt" +fi + +mounted= +if type grub-mount >/dev/null 2>&1 && \ + type grub-probe >/dev/null 2>&1 && \ + grub-mount "$partition" "$tmpmnt" 2>/dev/null; then + mounted=1 + type="$(grub-probe -d "$partition" -t fs)" + [ "$type" ] || type=fuseblk +else + ro_partition "$partition" + for type in $types; do + if mount -o ro -t "$type" "$partition" "$tmpmnt" 2>/dev/null; then + mounted=1 + break + fi + done +fi + +if [ "$mounted" ]; then + linux_mount_boot "$partition" "$tmpmnt" + bootpart="${mountboot%% *}" + mounted="${mountboot#* }" + + for test in /usr/lib/linux-boot-probes/mounted/*; do + if [ -f "$test" ] && [ -x "$test" ]; then + debug "running $test $partition $bootpart $tmpmnt $type" + if $test "$partition" "$bootpart" "$tmpmnt" "$type"; then + debug "$test succeeded" + umount "$tmpmnt/boot" 2>/dev/null || true + if ! umount "$tmpmnt"; then + warn "failed to umount $tmpmnt" + fi + rmdir "$tmpmnt" || true + exit 0 + fi + fi + done + + umount "$tmpmnt/boot" 2>/dev/null || true + if ! umount "$tmpmnt"; then + warn "failed to umount $tmpmnt" + fi +fi + +rmdir "$tmpmnt" || true + +# No tests found anything. +exit 1 diff --git a/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/40grub b/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/40grub new file mode 100755 index 00000000..08f66051 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/40grub @@ -0,0 +1,107 @@ +#!/bin/sh +. /usr/share/os-prober/common.sh +set -e + +partition="$1" +bootpart="$2" +mpoint="$3" +type="$4" + +found_item=0 + +entry_result () { + if [ "$ignore_item" = 0 ] && \ + [ -n "$kernel" ] && \ + [ -e "$mpoint/$kernel" ]; then + result "$rootpart:$bootpart:$title:$kernel:$initrd:$parameters" + found_item=1 + fi + kernel="" + parameters="" + initrd="" + title="" + ignore_item=0 +} + +parse_grub_menu () { + mpoint="$1" + rootpart="$2" + bootpart="$3" + + kernel="" + parameters="" + initrd="" + title="" + ignore_item=0 + + while read line; do + #debug "parsing: $line" + set -f + set -- $line + set +f + case "$1" in + title) + entry_result + shift 1 + title="$(echo "$@" | sed 's/://g')" + if echo "$title" | grep -q '(on /dev/[^)]*)$'; then + log "Skipping entry '$title':" + log "appears to be an automatic reference taken from another menu.lst" + ignore_item=1 + fi + ;; + kernel) + # Hack alert: sed off any (hdn,n) but + # assume the kernel is on the same + # partition. + kernel="$(echo "$2" | sed 's/(.*)//')" + shift 2 + parameters="$@" + # Systems with a separate /boot will not have + # the path to the kernel in menu.lst. + if [ "$partition" != "$bootpart" ]; then + kernel="/boot$kernel" + fi + ;; + initrd) + # Hack alert take 2: sed off any (hdn,n) + # See #566102 + initrd="$(echo "$2" | sed 's/(.*)//')" + # Initrd same. + if [ "$partition" != "$bootpart" ]; then + initrd="/boot$initrd" + fi + ;; + boot) + entry_result + ;; + module) + log "Skipping entry '$title':" + log "parsing of entries containing 'module' lines is currently not supported" + ignore_item=1 + ;; + esac + done + + entry_result +} + +grubconf= +if [ -e "$mpoint/boot/grub/menu.lst" ]; then + grubconf="menu.lst" +elif [ -e "$mpoint/boot/grub/grub.conf" ]; then + grubconf="grub.conf" +fi + +if [ "$grubconf" ] && \ + ([ ! -e "$mpoint/boot/grub/grub.cfg" ] || \ + [ "$mpoint/boot/grub/$grubconf" -nt "$mpoint/boot/grub/grub.cfg" ]); then + debug "parsing $grubconf" + parse_grub_menu "$mpoint" "$partition" "$bootpart" < "$mpoint/boot/grub/$grubconf" +fi + +if [ "$found_item" = 0 ]; then + exit 1 +else + exit 0 +fi diff --git a/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/40grub2 b/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/40grub2 new file mode 100755 index 00000000..885614e0 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/40grub2 @@ -0,0 +1,110 @@ +#!/bin/sh +. /usr/share/os-prober/common.sh +set -e + +partition="$1" +bootpart="$2" +mpoint="$3" +type="$4" + +found_item=0 + +entry_result () { + if [ "$ignore_item" = 0 ] && \ + [ -n "$kernel" ] && \ + [ -e "$mpoint/$kernel" ]; then + result "$rootpart:$bootpart:$title:$kernel:$initrd:$parameters" + found_item=1 + fi + kernel="" + parameters="" + initrd="" + title="" + ignore_item=0 +} + +parse_grub_menu () { + mpoint="$1" + rootpart="$2" + bootpart="$3" + + kernel="" + parameters="" + initrd="" + title="" + ignore_item=0 + + while read line; do + debug "parsing: $line" + set -f + set -- $line + set +f + case "$1" in + menuentry) + entry_result + shift 1 + # The double-quoted string is the title. + # Make sure to look at the text of the line + # before 'set' mangled it. + title="$(echo "$line" | sed -n 's/[^"]*"\(.*\)".*/\1/p' | sed 's/://g')" + if [ -z "$title" ]; then + # ... or single-quoted? Be careful + # to handle constructions like + # 'foo'\''bar' (which expands to + # foo'bar, as in shell), and to + # handle multiple single-quoted + # strings on the same line. + title="$(echo "$line" | sed -n "s/[^']*'\(\([^']\|'\\\\''\)*\)'.*/\1/p" | sed "s/'\\\\''/'/; s/://g")" + fi + if [ -z "$title" ]; then + ignore_item=1 + elif echo "$title" | grep -q '(on /dev/[^)]*)$'; then + log "Skipping entry '$title':" + log "appears to be an automatic reference taken from another menu.lst" + ignore_item=1 + fi + ;; + linux) + # Hack alert: sed off any (hdn,n) but + # assume the kernel is on the same + # partition. + kernel="$(echo "$2" | sed 's/(.*)//')" + shift 2 + parameters="$@" + # Systems with a separate /boot will not have + # the path to the kernel in grub.cfg. + if [ "$partition" != "$bootpart" ]; then + kernel="/boot$kernel" + fi + ;; + initrd) + initrd="$(echo "$2" | sed 's/(.*)//')" + # Initrd same. + if [ "$partition" != "$bootpart" ]; then + initrd="/boot$initrd" + fi + ;; + "}") + entry_result + ;; + esac + done + + entry_result +} + +if [ -e "$mpoint/boot/grub/grub.cfg" ] && \ + ([ ! -e "$mpoint/boot/grub/menu.lst" ] || \ + [ "$mpoint/boot/grub/grub.cfg" -nt "$mpoint/boot/grub/menu.lst" ]); then + debug "parsing grub.cfg" + parse_grub_menu "$mpoint" "$partition" "$bootpart" < "$mpoint/boot/grub/grub.cfg" +elif [ -e "$mpoint/boot/grub2/grub.cfg" ]; then + debug "parsing grub.cfg" + parse_grub_menu "$mpoint" "$partition" "$bootpart" < "$mpoint/boot/grub2/grub.cfg" +fi + +if [ "$found_item" = 0 ]; then + exit 1 +else + exit 0 +fi diff --git a/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/50lilo b/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/50lilo new file mode 100755 index 00000000..a011b566 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/50lilo @@ -0,0 +1,126 @@ +#!/bin/sh +. /usr/share/os-prober/common.sh +set -e + +partition="$1" +bootpart="$2" +mpoint="$3" +type="$4" + +found_item=0 + +title="" +rootdev="" +kernel="" +parameters="" +initrd="" +read_only="" +added_parameters=0 +default_rootdev="" +default_kernel="" +default_parameters="" +default_initrd="" +default_read_only="" + +dequote () { + item="${1%\"}" + echo "${item#\"}" +} + +addparams () { + # Any parameters we find replace the default parameters, but + # otherwise append. + if [ "$added_parameters" = 0 ]; then + parameters="$1" + added_parameters=1 + else + parameters="${parameters:+$parameters }$1" + fi +} + +recordstanza () { + if [ -n "$kernel" ] && [ -n "$title" ]; then + if [ -e "$mpoint/$kernel" ] && [ -e "$mpoint/$initrd" ]; then + if [ "$read_only" ]; then + parameters="ro $parameters" + fi + if [ "$rootdev" ]; then + parameters="root=$rootdev $parameters" + fi + parameters="${parameters% }" + result "$rootpart:$bootpart:$title:$kernel:$initrd:$parameters" + found_item=1 + else + debug "cannot find $kernel or $initrd, not recording" + fi + title="" + rootdev="$default_rootdev" + kernel="$default_kernel" + parameters="$default_parameters" + initrd="$default_initrd" + read_only="$default_read_only" + added_parameters=0 + else + # Everything before set default values. + default_rootdev="$rootdev" + default_kernel="$kernel" + default_parameters="$parameters" + default_initrd="$initrd" + default_read_only="$read_only" + fi +} + +parse_lilo_conf () { + mpoint="$1" + rootpart="$2" + bootpart="$3" + IFS=" =" + while read line; do + debug "parsing: $line" + set -f + set -- $line + set +f + case "$1" in + root) + rootdev=$(dequote "$2") + ;; + image) + recordstanza + # Dereference if symbolic link + kernel="$(readlink -f "$(dequote "$2")")" + ;; + append) + addparams "$(dequote "${line#append=}")" + ;; + initrd) + # Dereference if symbolic link + initrd="$(readlink -f "$(dequote "$2")")" + ;; + label) + shift 1 + title="$(dequote "$*" | sed -e 's/:/ /g')" + ;; + other) + recordstanza + ;; + read-only) + read_only=1 + ;; + vga) + addparams "$line" + ;; + esac + done + recordstanza +} + +if [ -e "$mpoint/etc/lilo.conf" ]; then + debug "parsing lilo.conf" + parse_lilo_conf "$mpoint" "$partition" "$bootpart" < "$mpoint/etc/lilo.conf" +fi + +if [ "$found_item" = 0 ]; then + exit 1 +else + exit 0 +fi diff --git a/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/90fallback b/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/90fallback new file mode 100755 index 00000000..9ff78e13 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/linux-boot-probes/mounted/90fallback @@ -0,0 +1,53 @@ +#!/bin/sh +# Fallback in case nothing else works. Look for vmlinu[xz] file in root and +# /boot, see if there is a matching initrd, and wing it. +. /usr/share/os-prober/common.sh +set -e + +partition="$1" +bootpart="$2" +mpoint="$3" +type="$4" + +mappedpartition=$(mapdevfs "$partition" 2>/dev/null) || mappedpartition="$partition" + +exitcode=1 +for kernpat in /vmlinuz /vmlinux /boot/vmlinuz /boot/vmlinux "/boot/vmlinuz*" \ + "/boot/vmlinux*" "/vmlinuz*" "/vmlinux*" "/kernel-*" "/boot/kernel-*"; do + if echo "$kernpat" | grep -q boot/; then + kernbootpart="$bootpart" + else + kernbootpart="$partition" + fi + for kernfile in $(eval ls "$mpoint$kernpat" 2>/dev/null); do + kernbasefile=$(echo "$kernfile" | sed "s!^$mpoint!!") + if [ -f "$kernfile" ] && [ ! -L "$kernfile" ]; then + initrdname=$(echo "$kernfile" | sed "s/vmlinu[zx]/initrd\*/") + # Yellow Dog Linux appends .img to it. + initrdname1="${initrdname}.img" + # Arch Linux names its initrds weirdly. We take + # some care here to avoid false positives on other + # systems, since kernel.img could conceivably be a + # kernel itself. + initrdname2=$(echo "$kernfile" | sed -n 's/vmlinu[zx]\([0-9][0-9]*\)/kernel\1/p' | sed 's/$/.img/') + # Dracut initramfses are named differently again. + initrdname3=$(echo "$kernfile" | sed "s/vmlinu[zx]/initramfs\*/" | sed 's/$/.img/') + # And Gentoo's also + initrdname4=$(echo "$kernfile" | sed "s/kernel/initramfs\*/") + foundinitrd=0 + for initrd in $(eval ls "$initrdname" "$initrdname1" "$initrdname2" "$initrdname3" "$initrdname4" 2>/dev/null); do + if [ "$initrd" != "$kernfile" ] && [ -f "$initrd" ] && [ ! -L "$initrd" ]; then + initrd=$(echo "$initrd" | sed "s!^$mpoint!!") + result "$partition:$kernbootpart::$kernbasefile:$initrd:root=$mappedpartition" + exitcode=0 + foundinitrd=1 + fi + done + if [ "$foundinitrd" = 0 ]; then + result "$partition:$kernbootpart::$kernbasefile::root=$mappedpartition" + exitcode=0 + fi + fi + done +done +exit "$exitcode" diff --git a/builder/hd-boot/grub/usr/lib/os-prober/newns b/builder/hd-boot/grub/usr/lib/os-prober/newns new file mode 100755 index 00000000..1b9eae47 Binary files /dev/null and b/builder/hd-boot/grub/usr/lib/os-prober/newns differ diff --git a/builder/hd-boot/grub/usr/lib/os-probes/50mounted-tests b/builder/hd-boot/grub/usr/lib/os-probes/50mounted-tests new file mode 100755 index 00000000..561163bf --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/50mounted-tests @@ -0,0 +1,93 @@ +#!/bin/sh +# Sub-tests that require a mounted partition. +set -e +partition="$1" + +. /usr/share/os-prober/common.sh + +types="$(fs_type "$partition")" || types=NOT-DETECTED +if [ "$types" = NOT-DETECTED ]; then + debug "$1 type not recognised; skipping" + exit 0 +elif [ "$types" = swap ]; then + debug "$1 is a swap partition; skipping" + exit 0 +elif [ "$types" = crypto_LUKS ]; then + debug "$1 is a LUKS partition; skipping" + exit 0 +elif [ "$types" = ntfs ]; then + if type ntfs-3g >/dev/null 2>&1; then + types='ntfs-3g ntfs' + fi +elif [ -z "$types" ]; then + if type cryptsetup >/dev/null 2>&1 && \ + cryptsetup luksDump "$partition" >/dev/null 2>&1; then + debug "$1 is a LUKS partition; skipping" + exit 0 + fi + for type in $(grep -v nodev /proc/filesystems); do + # hfsplus filesystems are mountable as hfs. Try hfs last so + # that we can tell the difference. + if [ "$type" = hfs ]; then + delaytypes="${delaytypes:+$delaytypes }$type" + elif [ "$type" = fuseblk ]; then + if type ntfs-3g >/dev/null 2>&1; then + types="${types:+$types }ntfs-3g" + fi + else + types="${types:+$types }$type" + fi + done +fi + +tmpmnt=/var/lib/os-prober/mount +if [ ! -d "$tmpmnt" ]; then + mkdir "$tmpmnt" +fi + +mounted= +if type grub-mount >/dev/null 2>&1 && \ + type grub-probe >/dev/null 2>&1 && \ + grub-mount "$partition" "$tmpmnt" 2>/dev/null; then + mounted=1 + type="$(grub-probe -d "$partition" -t fs)" || true + if [ "$type" ]; then + debug "mounted using GRUB $type filesystem driver" + else + debug "mounted using GRUB, but unknown filesystem?" + type=fuseblk + fi +else + ro_partition "$partition" + for type in $types $delaytypes; do + if mount -o ro -t "$type" "$partition" "$tmpmnt" 2>/dev/null; then + debug "mounted as $type filesystem" + mounted=1 + break + fi + done +fi + +if [ "$mounted" ]; then + for test in /usr/lib/os-probes/mounted/*; do + debug "running subtest $test" + if [ -f "$test" ] && [ -x "$test" ]; then + if "$test" "$partition" "$tmpmnt" "$type"; then + debug "os found by subtest $test" + if ! umount "$tmpmnt"; then + warn "failed to umount $tmpmnt" + fi + rmdir "$tmpmnt" || true + exit 0 + fi + fi + done + if ! umount "$tmpmnt"; then + warn "failed to umount $tmpmnt" + fi +fi + +rmdir "$tmpmnt" || true + +# No tests found anything. +exit 1 diff --git a/builder/hd-boot/grub/usr/lib/os-probes/init/10filesystems b/builder/hd-boot/grub/usr/lib/os-probes/init/10filesystems new file mode 100755 index 00000000..f50e55ed --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/init/10filesystems @@ -0,0 +1,39 @@ +#!/bin/sh +# Make sure filesystems are available. +set +e # ignore errors from modprobe + +FILESYSTEMS='ext2 ext3 ext4 xfs jfs msdos vfat ntfs minix hfs hfsplus qnx4 ufs btrfs' +# fuse is needed to make grub-mount work. +FILESYSTEMS="$FILESYSTEMS fuse" +# The Ubuntu kernel udebs put a number of filesystem modules in +# fs-{core,secondary}-modules. It's fairly cheap to check for these too. +FILESYSTEMS="$FILESYSTEMS fs-core fs-secondary" + +if [ ! -e /var/lib/os-prober/modules ]; then + # Check for anna-install to make it easier to use os-prober outside + # d-i. + if type anna-install >/dev/null 2>&1 && [ -d /lib/debian-installer ]; then + for fs in $FILESYSTEMS; do + ANNA_QUIET=1 DEBIAN_FRONTEND=none \ + log-output -t os-prober \ + anna-install "$fs-modules" || true + done + depmod -a >/dev/null 2>&1 || true + fi + + for fs in $FILESYSTEMS; do + case "$fs" in + fs-*) + ;; + *) + modprobe "$fs" 2>/dev/null | logger -t os-prober + ;; + esac + done + + # We only want to keep this state inside d-i, so this is as good a + # check as any. + if type anna-install >/dev/null 2>&1 && [ -d /lib/debian-installer ]; then + touch /var/lib/os-prober/modules + fi +fi diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/05efi b/builder/hd-boot/grub/usr/lib/os-probes/mounted/05efi new file mode 100755 index 00000000..93309ce3 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/05efi @@ -0,0 +1,71 @@ +#!/bin/sh +# Detects all Microsoft OSes on a collection of partitions. + +. /usr/share/os-prober/common.sh + +partition="$1" +mpoint="$2" +type="$3" + +# This file is for UEFI platform only +if [ ! -d /sys/firmware/efi ] || [ -f /var/lib/partman/ignore_uefi ]; then + debug "Not on UEFI platform" + exit 1 +fi + +# Weed out stuff that doesn't apply to us +case "$type" in + vfat) debug "$1 is a FAT32 partition" ;; + msdos) debug "$1 is a FAT16 partition" ;; + fat) debug "$1 is a FAT partition (mounted by GRUB)" ;; + *) debug "$1 is $type partition: exiting"; exit 1 ;; +esac + +if type udevadm > /dev/null 2>&1; then + udevinfo () { + udevadm info "$@" + } +fi + +if type udevinfo > /dev/null 2>&1; then + # Skip virtual devices + if udevinfo -q path -n $partition | grep -q /virtual/; then + debug "$1 is virtual device: exiting" + exit 1 + fi + + eval "$(udevinfo -q property -n "$partition" | grep -E '^ID_PART_ENTRY_(TYPE|SCHEME)=')" + debug "$partition partition scheme is $ID_PART_ENTRY_SCHEME" + debug "$partition partition type is $ID_PART_ENTRY_TYPE" + + if [ -z "$ID_PART_ENTRY_TYPE" -o -z "$ID_PART_ENTRY_SCHEME" -o \ + \( "$ID_PART_ENTRY_SCHEME" != gpt -a "$ID_PART_ENTRY_SCHEME" != msdos \) -o \ + \( "$ID_PART_ENTRY_SCHEME" = gpt -a "$ID_PART_ENTRY_TYPE" != c12a7328-f81f-11d2-ba4b-00a0c93ec93b \) -o \ + \( "$ID_PART_ENTRY_SCHEME" = msdos -a "$ID_PART_ENTRY_TYPE" != 0xef \) ]; then + debug "$partition is not a ESP partition: exiting" + exit 1 + fi +else + debug "udevinfo and udevadm missing - cannot check partition type" +fi + +efi=$(item_in_dir efi "$mpoint") +if [ -z "$efi" ]; then + debug "$mpoint does not have /EFI directory: exiting" + exit 1 +fi + +ret=1 +for test in /usr/lib/os-probes/mounted/efi/*; do + debug "running subtest $test" + if [ -f "$test" ] && [ -x "$test" ]; then + entry=$("$test" "$mpoint/$efi") + if [ -n "$entry" ]; then + debug "bootloader $entry found by subtest $test" + ret=0 + result "${partition}@/$efi/${entry}:efi" + fi + fi +done + +exit $ret diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/10freedos b/builder/hd-boot/grub/usr/lib/os-probes/mounted/10freedos new file mode 100755 index 00000000..94388f30 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/10freedos @@ -0,0 +1,23 @@ +#!/bin/sh + +. /usr/share/os-prober/common.sh + +partition="$1" +mpoint="$2" +type="$3" + +# Weed out stuff that doesn't apply to us +case "$type" in + vfat) debug "$1 is a FAT32 partition" ;; + msdos) debug "$1 is a FAT16 partition" ;; + fat) debug "$1 is a FAT partition (mounted by GRUB)" ;; + *) debug "$1 is not a FAT partition: exiting"; exit 1 ;; +esac + +if item_in_dir -q kernel.sys "$2" && item_in_dir -q command.com "$2"; then + label="$(count_next_label FreeDOS)" + result "$1:FreeDOS:$label:chain" + exit 0 +else + exit 1 +fi diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/10qnx b/builder/hd-boot/grub/usr/lib/os-probes/mounted/10qnx new file mode 100755 index 00000000..8d40398f --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/10qnx @@ -0,0 +1,21 @@ +#!/bin/sh + +. /usr/share/os-prober/common.sh + +partition="$1" +mpoint="$2" +type="$3" + +# Weed out stuff that doesn't apply to us +case "$type" in + qnx4) debug "$partition is a QNX4 partition" ;; + *) debug "$partition is not a QNX4 partition: exiting"; exit 1 ;; +esac + +if [ -e "$mpoint/.boot" ]; then + label="$(count_next_label QNX)" + result "$partition:QNX:$label:chain" + exit 0 +else + exit 1 +fi diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/20macosx b/builder/hd-boot/grub/usr/lib/os-probes/mounted/20macosx new file mode 100755 index 00000000..dd4207fe --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/20macosx @@ -0,0 +1,30 @@ +#!/bin/sh -e +# Detects Mac OS X. I don't yet know how Mac OS <= 9 fits into this. +. /usr/share/os-prober/common.sh + +partition="$1" +mpoint="$2" +type="$3" + +debug() { + logger -t macosx-prober "debug: $@" +} + +# Weed out stuff that doesn't apply to us +case "$type" in + hfsplus) debug "$1 is an HFS+ partition" ;; + *) debug "$1 is not an HFS+ partition: exiting"; exit 1 ;; +esac + +# Could use a better test than this. +# /System/Library/CoreServices/SystemVersion.plist has version information, +# but I don't think it exists on Mac OS <= 9, and it's XML so parsing in +# shell will be nasty. + +if [ -e "$2/mach_kernel" ]; then + label="$(count_next_label MacOSX)" + result "$1:Mac OS X:$label:macosx" + exit 0 +else + exit 1 +fi diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/20microsoft b/builder/hd-boot/grub/usr/lib/os-probes/mounted/20microsoft new file mode 100755 index 00000000..6fb3cc5d --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/20microsoft @@ -0,0 +1,115 @@ +#!/bin/sh +# Detects all Microsoft OSes on a collection of partitions. + +. /usr/share/os-prober/common.sh + +partition="$1" +mpoint="$2" +type="$3" + +# This script looks for legacy BIOS bootloaders only. Skip if running UEFI +if [ -d /sys/firmware/efi ] && [ ! -f /var/lib/partman/ignore_uefi ]; then + debug "Skipping legacy bootloaders on UEFI system" + exit 1 +fi + +# Weed out stuff that doesn't apply to us +case "$type" in + ntfs|ntfs-3g) debug "$1 is a NTFS partition" ;; + vfat) debug "$1 is a FAT32 partition" ;; + msdos) debug "$1 is a FAT16 partition" ;; + fat) debug "$1 is a FAT partition (mounted by GRUB)" ;; + fuse|fuseblk) debug "$1 is a FUSE partition" ;; # might be ntfs-3g + *) debug "$1 is not a MS partition: exiting"; exit 1 ;; +esac + +found= +# Vista (previously Longhorn) +if item_in_dir -q bootmgr "$2"; then + # there might be different boot directories in different case as: + # boot Boot BOOT + for boot in $(item_in_dir boot "$2"); do + bcd=$(item_in_dir bcd "$2/$boot") + if [ -n "$bcd" ]; then + if grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; then + long="Windows 8 (loader)" + elif grep -qs "W.i.n.d.o.w.s. .7" "$2/$boot/$bcd"; then + long="Windows 7 (loader)" + elif grep -qs "W.i.n.d.o.w.s. .V.i.s.t.a" "$2/$boot/$bcd"; then + long="Windows Vista (loader)" + elif grep -qs "W.i.n.d.o.w.s. .S.e.r.v.e.r. .2.0.0.8. .R.2." "$2/$boot/$bcd"; then + long="Windows Server 2008 R2 (loader)" + elif grep -qs "W.i.n.d.o.w.s. .S.e.r.v.e.r. .2.0.0.8." "$2/$boot/$bcd"; then + long="Windows Server 2008 (loader)" + elif grep -qs "W.i.n.d.o.w.s. .R.e.c.o.v.e.r.y. .E.n.v.i.r.o.n.m.e.n.t" "$2/$boot/$bcd"; then + long="Windows Recovery Environment (loader)" + elif grep -qs "W.i.n.d.o.w.s. .S.e.t.u.p" "$2/$boot/$bcd"; then + long="Windows Recovery Environment (loader)" + else + long="Windows Vista (loader)" + fi + short=Windows + + found=true + + break + fi + done +fi + +# 2000/XP/NT4.0 +if [ -z "$found" ] && item_in_dir -q ntldr "$2" && item_in_dir -q ntdetect.com "$2"; then + long="Windows NT/2000/XP" + short=Windows + ini=$(item_in_dir boot.ini "$2") + if [ -n "$ini" ]; then + multicount="$(grep -e "^multi" "$2/$ini" | wc -l)" + scsicount="$(grep -e "^scsi" "$2/$ini" | wc -l)" + msoscount="$(expr "${multicount}" + "${scsicount}")" + if [ "$msoscount" -eq 1 ]; then + # We need to remove a Carriage Return at the end of + # the line... + defaultmspart="$(grep -e "^default=" "$2/$ini" | cut -d '=' -f2 | tr -d '\r')" + # Escape any backslashes in defaultmspart + grepexp="^$(echo "$defaultmspart" | sed -e 's/\\/\\\\/')=" + # Colons not allowed; replace by spaces + # Accented characters (non UTF-8) cause debconf to + # hang, so we fall back to the default if the name + # contains any weird characters. + long="$(grep -e "$grepexp" "$2/$ini" | cut -d '"' -f2 | \ + tr ':' ' ' | LC_ALL=C grep -v '[^a-zA-Z0-9 &()/_-]')" + if [ -z "$long" ]; then + long="Windows NT/2000/XP" + fi + else + long="Windows NT/2000/XP (loader)" + fi + + found=true + fi +fi + +# MS-DOS +if [ -z "$found" ] && item_in_dir -q dos "$2"; then + long="MS-DOS 5.x/6.x/Win3.1" + short=MS-DOS + + found=true +fi + +# 95/98/Me +if [ -z "$found" ] && item_in_dir -q windows "$2" && + item_in_dir -q win.com "$2"/"$(item_in_dir windows "$2")"; then + long="Windows 95/98/Me" + short=Windows9xMe + + found=true +fi + +if [ -z "$found" ]; then + exit 1 +fi + +label="$(count_next_label "$short")" +result "${partition}:${long}:${label}:chain" +exit 0 diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/30utility b/builder/hd-boot/grub/usr/lib/os-probes/mounted/30utility new file mode 100755 index 00000000..af48d307 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/30utility @@ -0,0 +1,33 @@ +#!/bin/sh +# Detects utility (hw vendor recovery) partitions. + +. /usr/share/os-prober/common.sh + +partition="$1" +mpoint="$2" +type="$3" + +# Weed out stuff that doesn't apply to us +case "$type" in + vfat) debug "$1 is a FAT32 partition" ;; + msdos) debug "$1 is a FAT16 partition" ;; + fat) debug "$1 is a FAT partition (mounted by GRUB)" ;; + *) debug "$1 is not a FAT partition: exiting"; exit 1 ;; +esac + +# Dell Utility partitions have partition type 0xde, but no idea how to +# cleanly detect that from shell +if item_in_dir -q dellbio.bin "$2" && \ + (item_in_dir -q delldiag.exe "$2" || item_in_dir -q delldiag.com "$2"); then + long="Dell Utility Partition" + short=DellUtility +elif item_in_dir -q f11.sys "$2"; then + long="Acronis Secure Zone" + short=AcroneZone +else + exit 1 +fi + +label="$(count_next_label "$short")" +result "${partition}:${long}:${label}:chain" +exit 0 diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/40lsb b/builder/hd-boot/grub/usr/lib/os-probes/mounted/40lsb new file mode 100755 index 00000000..ce8d4e1f --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/40lsb @@ -0,0 +1,48 @@ +#!/bin/sh +# Test for LSB systems. +set -e + +. /usr/share/os-prober/common.sh + +partition="$1" +dir="$2" +type="$3" + +lsb_field () { + file="$1" + field="$2" + grep ^"$field" "$file" | cut -d = -f 2 | sed 's/^"//' | sed 's/"$//' | sed 's/:/ /g' +} + +file="$dir/etc/lsb-release" +if [ ! -e "$file" ]; then + exit 1 +fi + +release=$(lsb_field "$file" DISTRIB_RELEASE) +if [ -z "$release" ]; then + release=$(lsb_field "$file" DISTRIB_CODENAME) +fi +description=$(lsb_field "$file" DISTRIB_DESCRIPTION) +if [ -z "$description" ]; then + description=$(lsb_field "$file" DISTRIB_CODENAME) +fi + +if [ -n "$description" ]; then + if [ -n "$release" ]; then + long="$description ($release)" + else + long="$description" + fi +else + exit 1 +fi + +short=$(lsb_field "$file" DISTRIB_ID | sed 's/ //g') +if [ -z "$short" ]; then + short="UnknownLSB" +fi + +label="$(count_next_label "$short")" +result "$partition:$long:$label:linux" +exit 0 diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/70hurd b/builder/hd-boot/grub/usr/lib/os-probes/mounted/70hurd new file mode 100755 index 00000000..ffc0a44b --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/70hurd @@ -0,0 +1,16 @@ +#!/bin/sh +set -e + +. /usr/share/os-prober/common.sh + +partition="$1" +dir="$2" +type="$3" + +if [ -e "$dir/servers/exec" ] && [ -x "$dir/hurd/init" ]; then + label="$(count_next_label Hurd)" + result "$partition:GNU/Hurd:$label:hurd" + exit 0 +else + exit 1 +fi diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/80minix b/builder/hd-boot/grub/usr/lib/os-probes/mounted/80minix new file mode 100755 index 00000000..e01f6695 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/80minix @@ -0,0 +1,28 @@ +#!/bin/sh +set -e + +. /usr/share/os-prober/common.sh + +partition="$1" +dir="$2" +type="$3" + +# Weed out stuff that doesn't apply to us +case "$type" in + minix|minix2|ext2) ;; + *) exit 1 ;; +esac + +if [ -f "$dir/minix" ] || [ -e "$dir/boot/image_big" ]; then + if [ -e "$dir/boot/image_latest" ]; then + boot="minix" + else + boot="chain" + fi + + label="$(count_next_label Minix)" + result "$partition:Minix:$label:$boot" + exit 0 +else + exit 1 +fi diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/83haiku b/builder/hd-boot/grub/usr/lib/os-probes/mounted/83haiku new file mode 100755 index 00000000..6de7a1d4 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/83haiku @@ -0,0 +1,35 @@ +#!/bin/sh +# Detects Haiku on BeFS partitions. + +. /usr/share/os-prober/common.sh + +partition="$1" +mpoint="$2" +type="$3" + +# Weed out stuff that doesn't apply to us +case "$type" in + befs|befs_be) debug "$partition is a BeFS partition" ;; + *) debug "$partition is not a BeFS partition: exiting"; exit 1 ;; +esac + +if head -c 512 "$partition" | grep -qs "system.haiku_loader"; then + debug "Stage 1 bootloader found" +else + debug "Stage 1 bootloader not found: exiting" + exit 1 +fi + +if system="$(item_in_dir "system" "$mpoint")" && + item_in_dir -q "haiku_loader" "$mpoint/$system" && + (item_in_dir -q "kernel_x86" "$mpoint/$system" || + item_in_dir -q "kernel_x86_64" "$mpoint/$system") +then + debug "Stage 2 bootloader and kernel found" + label="$(count_next_label Haiku)" + result "$partition:Haiku:$label:chain" + exit 0 +else + debug "Stage 2 bootloader and kernel not found: exiting" + exit 1 +fi diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/90linux-distro b/builder/hd-boot/grub/usr/lib/os-probes/mounted/90linux-distro new file mode 100755 index 00000000..6678f22e --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/90linux-distro @@ -0,0 +1,138 @@ +#!/bin/sh +# Test for linux distributions. +set -e + +. /usr/share/os-prober/common.sh + +partition="$1" +dir="$2" +type="$3" + +# This test is inaccurate, but given separate / and /boot partitions and the +# fact that only some architectures have ld-linux.so, I can't see anything +# better. Make sure this test has a high number so that more accurate tests +# can come first. +# Unless volumes to checked are already mounted, they will be mounted using +# GRUB's own filesystems through FUSE. Since these ATM doesn't support +# symlinks we need to also check in $dir/usr/lib* for distributions that +# moved /lib* to /usr and only left symlinks behind. +# TODO: look for ld-linux.so on arches that have it +if (ls "$dir"/lib*/ld*.so* || ls "$dir"/usr/lib*/ld*.so*) >/dev/null 2>/dev/null; then + if [ -e "$dir/etc/debian_version" ]; then + short="Debian" + long="$(printf "Debian GNU/Linux (%s)\n" "$(cat "$dir/etc/debian_version")")" + # RPM derived distributions may also have a redhat-release or + # mandrake-release, so check their files first. + elif [ -e "$dir/etc/altlinux-release" ]; then + short="ALTLinux" + long="$(cat "$dir/etc/altlinux-release")" + elif [ -e "$dir/etc/magic-release" ]; then + short="Magic" + long="$(cat "$dir/etc/magic-release")" + elif [ -e "$dir/etc/blackPanther-release" ]; then + short="blackPanther" + long="$(cat "$dir/etc/blackPanther-release")" + elif [ -e "$dir/etc/ark-release" ]; then + short="Ark" + long="$(cat "$dir/etc/ark-release")" + elif [ -e "$dir/etc/arch-release" ]; then + short="Arch" + long="$(cat "$dir/etc/arch-release")" + elif [ -e "$dir/etc/asplinux-release" ]; then + short="ASPLinux" + long="$(cat "$dir/etc/asplinux-release")" + elif [ -e "$dir/etc/lvr-release" ]; then + short="LvR" + long="$(cat "$dir/etc/lvr-release")" + elif [ -e "$dir/etc/caos-release" ]; then + short="cAos" + long="$(cat "$dir/etc/caos-release")" + elif [ -e "$dir/etc/aurox-release" ]; then + short="Aurox" + long="$(cat "$dir/etc/aurox-release")" + elif [ -e "$dir/etc/engarde-release" ]; then + short="EnGarde" + long="$(cat "$dir/etc/engarde-release")" + elif [ -e "$dir/etc/vine-release" ]; then + short="Vine" + long="$(cat "$dir/etc/vine-release")" + elif [ -e "$dir/etc/whitebox-release" ]; then + short="WhiteBox" + long="$(cat "$dir/etc/whitebox-release")" + elif [ -e "$dir/etc/pld-release" ]; then + short="PLD" + long="$(cat "$dir/etc/pld-release")" + elif [ -e "$dir/etc/startcom-release" ]; then + short="StartCom" + long="$(cat "$dir/etc/startcom-release")" + elif [ -e "$dir/etc/trustix-release" ]; then + short="Trustix" + long="$(cat "$dir/etc/trustix-release")" + elif [ -e "$dir/etc/openna-release" ]; then + short="OpenNA" + long="$(cat "$dir/etc/openna-release")" + elif [ -e "$dir/etc/conectiva-release" ]; then + short="Conectiva" + long="$(cat "$dir/etc/conectiva-release")" + elif [ -e "$dir/etc/mandrake-release" ]; then + short="Mandrake" + long="$(cat "$dir/etc/mandrake-release")" + elif [ -e "$dir/etc/fedora-release" ]; then + short="Fedora" + long="$(cat "$dir/etc/fedora-release")" + elif [ -e "$dir/etc/redhat-release" ]; then + short="RedHat" + long="$(cat "$dir/etc/redhat-release")" + elif [ -e "$dir/etc/SuSE-release" ]; then + short="SuSE" + long="$(head -n 1 "$dir/etc/SuSE-release")" + elif [ -e "$dir/etc/gentoo-release" ]; then + short="Gentoo" + long="$(cat "$dir/etc/gentoo-release")" + elif [ -e "$dir/etc/cobalt-release" ]; then + short="Cobalt" + long="$(cat "$dir/etc/cobalt-release")" + elif [ -e "$dir/etc/yellowdog-release" ]; then + short="YellowDog" + long="$(cat "$dir/etc/yellowdog-release")" + elif [ -e "$dir/etc/turbolinux-release" ]; then + short="Turbolinux" + long="$(cat "$dir/etc/turbolinux-release")" + elif [ -e "$dir/etc/pardus-release" ]; then + short="Pardus" + long="$(cat "$dir/etc/pardus-release")" + elif [ -e "$dir/etc/kanotix-version" ]; then + short="Kanotix" + long="$(cat "$dir/etc/kanotix-version")" + elif [ -e "$dir/etc/slackware-version" ]; then + short="Slackware" + long="$(printf "Slackware Linux (%s)\n" "$(cat "$dir/etc/slackware-version")")" + elif [ -e "$dir/sbin/pkgtool" ]; then + short="Slackware" + long="Slackware Linux" + elif grep -qs OpenLinux "$dir/etc/issue"; then + short="Caldera" + long="Caldera OpenLinux" + elif [ -e "$dir/etc/frugalware-release" ]; then + short="Frugalware Linux" + long="$(cat "$dir/etc/frugalware-release")" + elif [ -e "$dir/etc/kdemar-release" ]; then + short="K-DEMar" + long="$(printf "K-DEMar GNU/Linux (%s)\n" "$(cat "$dir/etc/kdemar-release")")" + elif [ -e "$dir/etc/lfs-release" ]; then + short="LFS" + long="$(printf "Linux From Scratch (%s)\n" "$(cat "$dir/etc/lfs-release")")" + elif [ -e "$dir/etc/meego-release" ]; then + short="MeeGo" + long="$(head -1 "$dir/etc/meego-release")" + else + short="Linux" + long="unknown Linux distribution" + fi + + label="$(count_next_label "$short")" + result "$partition:$long:$label:linux" + exit 0 +else + exit 1 +fi diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/90solaris b/builder/hd-boot/grub/usr/lib/os-probes/mounted/90solaris new file mode 100755 index 00000000..0e9148ce --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/90solaris @@ -0,0 +1,19 @@ +#!/bin/sh +# Attempt to check if solaris is installed in this system +# looking at the /etc/system parameters file and /etc/vfstab. + +set -e + +. /usr/share/os-prober/common.sh + +partition="$1" +dir="$2" +type="$3" + +if [ -f "$dir/etc/system" ] && [ -f "$dir/etc/vfstab" ]; then + label="$(count_next_label Solaris)" + result "$partition:Solaris/IA32:$label:chain" + exit 0 +else + exit 1 +fi diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/efi/10elilo b/builder/hd-boot/grub/usr/lib/os-probes/mounted/efi/10elilo new file mode 100755 index 00000000..72dc4627 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/efi/10elilo @@ -0,0 +1,24 @@ +#!/bin/sh +# Detects ELILO bootloader on a EFI System Partition + +. /usr/share/os-prober/common.sh + +efi="$1" + +found= + +elilo=`find $1 -name "elilo.efi"` +if [ -n "$elilo" ]; then + bdir=`dirname $elilo` + bdir=`basename $bdir` + long="ELILO Boot Manager" + short="ELILO" + path=${bdir}/elilo.efi + found=true +fi + +if [ -n "$found" ]; then + label="$(count_next_label "$short")" + result "${path}:${long}:${label}" +fi +exit 0 diff --git a/builder/hd-boot/grub/usr/lib/os-probes/mounted/efi/20microsoft b/builder/hd-boot/grub/usr/lib/os-probes/mounted/efi/20microsoft new file mode 100755 index 00000000..95320814 --- /dev/null +++ b/builder/hd-boot/grub/usr/lib/os-probes/mounted/efi/20microsoft @@ -0,0 +1,28 @@ +#!/bin/sh +# Detects Microsoft bootloader on a EFI System Partition + +. /usr/share/os-prober/common.sh + +efi="$1" + +found= +for microsoft in $(item_in_dir microsoft "$efi"); do + for boot in $(item_in_dir boot "$efi/$microsoft"); do + bcd=$(item_in_dir bcd "$efi/$microsoft/$boot") + bootmgfw=$(item_in_dir bootmgfw.efi "$efi/$microsoft/$boot") + if [ -n "$bcd" -a -n "$bootmgfw" ]; then + long="Windows Boot Manager" + short=Windows + path="$microsoft/$boot/$bootmgfw" + found=true + break + fi + done +done + + +if [ -n "$found" ]; then + label="$(count_next_label "$short")" + result "${path}:${long}:${label}" +fi +exit 0 diff --git a/builder/hd-boot/grub/usr/sbin/grub-bios-setup b/builder/hd-boot/grub/usr/sbin/grub-bios-setup new file mode 120000 index 00000000..3e8e944d --- /dev/null +++ b/builder/hd-boot/grub/usr/sbin/grub-bios-setup @@ -0,0 +1 @@ +../lib/grub/i386-pc/grub-bios-setup \ No newline at end of file diff --git a/builder/hd-boot/grub/usr/sbin/grub-install b/builder/hd-boot/grub/usr/sbin/grub-install new file mode 100755 index 00000000..e9261bfe Binary files /dev/null and b/builder/hd-boot/grub/usr/sbin/grub-install differ diff --git a/builder/hd-boot/grub/usr/sbin/grub-macbless b/builder/hd-boot/grub/usr/sbin/grub-macbless new file mode 100755 index 00000000..1b35b80f Binary files /dev/null and b/builder/hd-boot/grub/usr/sbin/grub-macbless differ diff --git a/builder/hd-boot/grub/usr/sbin/grub-mkconfig b/builder/hd-boot/grub/usr/sbin/grub-mkconfig new file mode 100755 index 00000000..524e998c --- /dev/null +++ b/builder/hd-boot/grub/usr/sbin/grub-mkconfig @@ -0,0 +1,306 @@ +#! /bin/sh +set -e + +# Generate grub.cfg by inspecting /boot contents. +# Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +prefix="/usr" +exec_prefix="/usr" +datarootdir="/usr/share" + +prefix="/usr" +exec_prefix="/usr" +sbindir="${exec_prefix}/sbin" +bindir="${exec_prefix}/bin" +sysconfdir="/etc" +PACKAGE_NAME=GRUB +PACKAGE_VERSION=2.02~beta2-22 +host_os=linux-gnu +datadir="${datarootdir}" +if [ "x$pkgdatadir" = x ]; then + pkgdatadir="${datadir}/grub" +fi +grub_cfg="" +grub_mkconfig_dir="${sysconfdir}"/grub.d + +self=`basename $0` + +grub_probe="${sbindir}/grub-probe" +grub_file="${bindir}/grub-file" +grub_editenv="${bindir}/grub-editenv" +grub_script_check="${bindir}/grub-script-check" + +export TEXTDOMAIN=grub +export TEXTDOMAINDIR="${datarootdir}/locale" + +. "${pkgdatadir}/grub-mkconfig_lib" + +# Usage: usage +# Print the usage. +usage () { + gettext_printf "Usage: %s [OPTION]\n" "$self" + gettext "Generate a grub config file"; echo + echo + print_option_help "-o, --output=$(gettext FILE)" "$(gettext "output generated config to FILE [default=stdout]")" + print_option_help "-h, --help" "$(gettext "print this message and exit")" + print_option_help "-v, --version" "$(gettext "print the version information and exit")" + echo + gettext "Report bugs to ."; echo +} + +argument () { + opt=$1 + shift + + if test $# -eq 0; then + gettext_printf "%s: option requires an argument -- \`%s'\n" "$self" "$opt" 1>&2 + exit 1 + fi + echo $1 +} + +# Check the arguments. +while test $# -gt 0 +do + option=$1 + shift + + case "$option" in + -h | --help) + usage + exit 0 ;; + -v | --version) + echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" + exit 0 ;; + -o | --output) + grub_cfg=`argument $option "$@"`; + path_to_dev="${grub_cfg:1}"; path_to_dev="/${path_to_dev%%/*}"; + shift + ;; + --output=*) + grub_cfg=`echo "$option" | sed 's/--output=//'` + ;; + -*) + gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2 + usage + exit 1 + ;; + # Explicitly ignore non-option arguments, for compatibility. + esac +done + +if fgrep -qs '${GRUB_PREFIX}/video.lst' "${grub_mkconfig_dir}/00_header"; then + echo "GRUB >= 2.00 has been unpacked but not yet configured." >&2 + echo "grub-mkconfig will not work until the upgrade is complete." >&2 + echo "It should run later as part of configuring the new GRUB packages." >&2 + exit 0 +fi + +if [ "x$EUID" = "x" ] ; then + EUID=`id -u` +fi + +if [ "$EUID" != 0 ] ; then + root=f + case "`uname 2>/dev/null`" in + CYGWIN*) + # Cygwin: Assume root if member of admin group + for g in `id -G 2>/dev/null` ; do + case $g in + 0|544) root=t ;; + esac + done ;; + esac + if [ $root != t ] ; then + gettext_printf "%s: You must run this as root\n" "$self" >&2 + exit 1 + fi +fi + +set $grub_probe dummy +if test -f "$1"; then + : +else + gettext_printf "%s: Not found.\n" "$1" 1>&2 + exit 1 +fi + +# Device containing our userland. Typically used for root= parameter. + +GRUB_DEVICE="`${grub_probe} --target=device $path_to_dev`" +GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true + +# Device containing our /boot partition. Usually the same as GRUB_DEVICE. +GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`" +GRUB_DEVICE_BOOT_UUID="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true + +# Filesystem for the device containing our userland. Used for stuff like +# choosing Hurd filesystem module. +GRUB_FS="`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2> /dev/null || echo unknown`" + +if [ x"$GRUB_FS" = xunknown ]; then + GRUB_FS="$(stat -f --printf=%T / || echo unknown)" +fi + +if test -f ${sysconfdir}/default/grub ; then + . ${sysconfdir}/default/grub +fi +for x in ${sysconfdir}/default/grub.d/*.cfg ; do + if [ -e "${x}" ]; then + . "${x}" + fi +done + +# XXX: should this be deprecated at some point? +if [ "x${GRUB_TERMINAL}" != "x" ] ; then + GRUB_TERMINAL_INPUT="${GRUB_TERMINAL}" + GRUB_TERMINAL_OUTPUT="${GRUB_TERMINAL}" +fi + +termoutdefault=0 +if [ "x${GRUB_TERMINAL_OUTPUT}" = "x" ]; then + GRUB_TERMINAL_OUTPUT=gfxterm; + termoutdefault=1; +fi + +for x in ${GRUB_TERMINAL_OUTPUT}; do + case "x${x}" in + xgfxterm) ;; + xconsole | xserial | xofconsole | xvga_text) + # make sure all our children behave in conformance with ascii.. + export LANG=C;; + *) echo "Invalid output terminal \"${GRUB_TERMINAL_OUTPUT}\"" >&2 ; exit 1 ;; + esac +done + +GRUB_ACTUAL_DEFAULT="$GRUB_DEFAULT" + +if [ "x${GRUB_ACTUAL_DEFAULT}" = "xsaved" ] ; then GRUB_ACTUAL_DEFAULT="`"${grub_editenv}" - list | sed -n '/^saved_entry=/ s,^saved_entry=,,p'`" ; fi + +if [ "x${GRUB_RECOVERY_TITLE}" = "x" ]; then + GRUB_RECOVERY_TITLE="recovery mode" +fi + + +# These are defined in this script, export them here so that user can +# override them. +export GRUB_DEVICE \ + GRUB_DEVICE_UUID \ + GRUB_DEVICE_BOOT \ + GRUB_DEVICE_BOOT_UUID \ + GRUB_FS \ + GRUB_FONT \ + GRUB_PRELOAD_MODULES \ + GRUB_ACTUAL_DEFAULT + +# These are optional, user-defined variables. +export GRUB_DEFAULT \ + GRUB_HIDDEN_TIMEOUT \ + GRUB_HIDDEN_TIMEOUT_QUIET \ + GRUB_TIMEOUT \ + GRUB_TIMEOUT_STYLE \ + GRUB_DEFAULT_BUTTON \ + GRUB_HIDDEN_TIMEOUT_BUTTON \ + GRUB_TIMEOUT_BUTTON \ + GRUB_TIMEOUT_STYLE_BUTTON \ + GRUB_BUTTON_CMOS_ADDRESS \ + GRUB_BUTTON_CMOS_CLEAN \ + GRUB_DISTRIBUTOR \ + GRUB_CMDLINE_LINUX \ + GRUB_CMDLINE_LINUX_DEFAULT \ + GRUB_CMDLINE_XEN \ + GRUB_CMDLINE_XEN_DEFAULT \ + GRUB_CMDLINE_LINUX_XEN_REPLACE \ + GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT \ + GRUB_CMDLINE_NETBSD \ + GRUB_CMDLINE_NETBSD_DEFAULT \ + GRUB_CMDLINE_GNUMACH \ + GRUB_TERMINAL_INPUT \ + GRUB_TERMINAL_OUTPUT \ + GRUB_SERIAL_COMMAND \ + GRUB_DISABLE_LINUX_UUID \ + GRUB_DISABLE_RECOVERY \ + GRUB_VIDEO_BACKEND \ + GRUB_GFXMODE \ + GRUB_BACKGROUND \ + GRUB_THEME \ + GRUB_GFXPAYLOAD_LINUX \ + GRUB_DISABLE_OS_PROBER \ + GRUB_INIT_TUNE \ + GRUB_SAVEDEFAULT \ + GRUB_ENABLE_CRYPTODISK \ + GRUB_BADRAM \ + GRUB_OS_PROBER_SKIP_LIST \ + GRUB_DISABLE_SUBMENU \ + GRUB_RECORDFAIL_TIMEOUT \ + GRUB_RECOVERY_TITLE + +if test "x${grub_cfg}" != "x"; then + rm -f "${grub_cfg}.new" + oldumask=$(umask); umask 077 + exec > "${grub_cfg}.new" + umask $oldumask +fi +gettext "Generating grub configuration file ..." >&2 +echo >&2 + +cat << EOF +# +# DO NOT EDIT THIS FILE +# +# It is automatically generated by $self using templates +# from ${grub_mkconfig_dir} and settings from ${sysconfdir}/default/grub +# +EOF + + +for i in "${grub_mkconfig_dir}"/* ; do + case "$i" in + # emacsen backup files. FIXME: support other editors + *~) ;; + # emacsen autosave files. FIXME: support other editors + */\#*\#) ;; + *) + if grub_file_is_not_garbage "$i" && test -x "$i" ; then + echo + echo "### BEGIN $i ###" + "$i" + echo "### END $i ###" + fi + ;; + esac +done + +if [ "x${grub_cfg}" != "x" ] && ! grep "^password" ${grub_cfg}.new >/dev/null; then + chmod 444 ${grub_cfg}.new || true +fi + +if test "x${grub_cfg}" != "x" ; then + if ! ${grub_script_check} ${grub_cfg}.new; then + # TRANSLATORS: %s is replaced by filename + gettext_printf "Syntax errors are detected in generated GRUB config file. +Ensure that there are no errors in /etc/default/grub +and /etc/grub.d/* files or please file a bug report with +%s file attached." "${grub_cfg}.new" >&2 + echo >&2 + else + # none of the children aborted with error, install the new grub.cfg + mv -f ${grub_cfg}.new ${grub_cfg} + fi +fi + +gettext "done" >&2 +echo >&2 diff --git a/builder/hd-boot/grub/usr/sbin/grub-mkdevicemap b/builder/hd-boot/grub/usr/sbin/grub-mkdevicemap new file mode 100755 index 00000000..690f3bbe Binary files /dev/null and b/builder/hd-boot/grub/usr/sbin/grub-mkdevicemap differ diff --git a/builder/hd-boot/grub/usr/sbin/grub-probe b/builder/hd-boot/grub/usr/sbin/grub-probe new file mode 100755 index 00000000..e42cb79b Binary files /dev/null and b/builder/hd-boot/grub/usr/sbin/grub-probe differ diff --git a/builder/hd-boot/grub/usr/sbin/grub-reboot b/builder/hd-boot/grub/usr/sbin/grub-reboot new file mode 100755 index 00000000..a4df4b7d --- /dev/null +++ b/builder/hd-boot/grub/usr/sbin/grub-reboot @@ -0,0 +1,144 @@ +#! /bin/sh +# +# Set a default boot entry for GRUB, for the next boot only. +# Copyright (C) 2004,2009 Free Software Foundation, Inc. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +# Initialize some variables. +prefix=/usr +exec_prefix=/usr +bindir=${exec_prefix}/bin +sysconfdir="/etc" +PACKAGE_NAME=GRUB +PACKAGE_VERSION=2.02~beta2-22 +datarootdir="/usr/share" +datadir="${datarootdir}" +if [ "x$pkgdatadir" = x ]; then + pkgdatadir="${datadir}/grub" +fi + +self=`basename $0` + +grub_editenv=${bindir}/grub-editenv +rootdir= +bootdir= +grubdir=`echo "/boot/grub" | sed 's,//*,/,g'` + +export TEXTDOMAIN=grub +export TEXTDOMAINDIR="${datarootdir}/locale" + +. "${pkgdatadir}/grub-mkconfig_lib" + +# Usage: usage +# Print the usage. +usage () { + gettext_printf "Usage: %s [OPTION] MENU_ENTRY\n" "$self" + gettext "Set the default boot menu entry for GRUB, for the next boot only."; echo + print_option_help "-h, --help" "$(gettext "print this message and exit")" + print_option_help "-v, --version" "$(gettext "print the version information and exit")" + dirmsg="$(gettext_printf "expect GRUB images under the directory DIR/%s instead of the %s directory" "grub" "$grubdir")" + print_option_help "--boot-directory=$(gettext "DIR")" "$dirmsg" + echo + gettext "MENU_ENTRY is a number, a menu item title or a menu item identifier. Please note that menu items in +submenus or sub-submenus require specifying the submenu components and then the +menu item component. The titles should be separated using the greater-than +character (>) with no extra spaces. Depending on your shell some characters including > may need escaping. More information about this is available +in the GRUB Manual in the section about the 'default' command. "; echo + echo + gettext "Report bugs to ."; echo +} + +argument () { + opt=$1 + shift + + if test $# -eq 0; then + gettext_printf "%s: option requires an argument -- \`%s'\n" "$self" "$opt" 1>&2 + exit 1 + fi + echo $1 +} + +# Check the arguments. +while test $# -gt 0 +do + option=$1 + shift + + case "$option" in + -h | --help) + usage + exit 0 ;; + -v | --version) + echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" + exit 0 ;; + +# Accept for compatibility + --root-directory) + rootdir=`argument $option "$@"`; shift ;; + --root-directory=*) + rootdir=`echo "$option" | sed 's/--root-directory=//'` ;; + + --boot-directory) + bootdir=`argument $option "$@"`; shift;; + --boot-directory=*) + bootdir=`echo "$option" | sed 's/--boot-directory=//'` ;; + + -*) + gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2 + usage + exit 1 + ;; + *) + if test "x$entry" != x; then + gettext "More than one menu entry?" 1>&2 + echo >&2 + usage + exit 1 + fi + entry="${option}" ;; + esac +done + +if test "x$entry" = x; then + gettext "Menu entry not specified." 1>&2 + echo >&2 + usage + exit 1 +fi + +if [ -z "$bootdir" ]; then + # Default bootdir if bootdir not initialized. + bootdir=/boot + + if [ -n "$rootdir" ] ; then + # Initialize bootdir if rootdir was initialized. + bootdir=${rootdir}/boot + fi +fi + +grubdir=`echo "${bootdir}/grub" | sed 's,//*,/,g'` + +# Restore saved_entry if it was set by previous version +prev_saved_entry=`$grub_editenv ${grubdir}/grubenv list | sed -n 's/^prev_saved_entry=//p'` +if [ "$prev_saved_entry" ]; then + $grub_editenv ${grubdir}/grubenv set saved_entry="$prev_saved_entry" + $grub_editenv ${grubdir}/grubenv unset prev_saved_entry +fi + +$grub_editenv ${grubdir}/grubenv set next_entry="$entry" + +# Bye. +exit 0 diff --git a/builder/hd-boot/grub/usr/sbin/grub-set-default b/builder/hd-boot/grub/usr/sbin/grub-set-default new file mode 100755 index 00000000..806d0367 --- /dev/null +++ b/builder/hd-boot/grub/usr/sbin/grub-set-default @@ -0,0 +1,137 @@ +#! /bin/sh +# +# Set a default boot entry for GRUB. +# Copyright (C) 2004,2009 Free Software Foundation, Inc. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +# Initialize some variables. +prefix=/usr +exec_prefix=/usr +bindir=${exec_prefix}/bin +sysconfdir="/etc" +PACKAGE_NAME=GRUB +PACKAGE_VERSION=2.02~beta2-22 +datarootdir="/usr/share" +datadir="${datarootdir}" +if [ "x$pkgdatadir" = x ]; then + pkgdatadir="${datadir}/grub" +fi + +self=`basename $0` + +grub_editenv=${bindir}/grub-editenv +rootdir= +bootdir= +grubdir=`echo "/boot/grub" | sed 's,//*,/,g'` + +export TEXTDOMAIN=grub +export TEXTDOMAINDIR="${datarootdir}/locale" + +. "${pkgdatadir}/grub-mkconfig_lib" + +# Usage: usage +# Print the usage. +usage () { + gettext_printf "Usage: %s [OPTION] MENU_ENTRY\n" "$self" + gettext "Set the default boot menu entry for GRUB."; echo + gettext_printf "This requires setting GRUB_DEFAULT=saved in %s/default/grub.\n" "$sysconfdir" + echo + print_option_help "-h, --help" "$(gettext "print this message and exit")" + print_option_help "-v, --version" "$(gettext "print the version information and exit")" + dirmsg="$(gettext_printf "expect GRUB images under the directory DIR/%s instead of the %s directory" "grub" "$grubdir")" + print_option_help "--boot-directory=$(gettext "DIR")" "$dirmsg" + echo + gettext "MENU_ENTRY is a number, a menu item title or a menu item identifier."; echo + echo + gettext "Report bugs to ."; echo +} + +argument () { + opt=$1 + shift + + if test $# -eq 0; then + gettext_printf "%s: option requires an argument -- \`%s'\n" "$self" "$opt" 1>&2 + exit 1 + fi + echo $1 +} + +# Check the arguments. +while test $# -gt 0 +do + option=$1 + shift + + case "$option" in + -h | --help) + usage + exit 0 ;; + -v | --version) + echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" + exit 0 ;; + +# Accept for compatibility + --root-directory) + rootdir=`argument $option "$@"`; shift ;; + --root-directory=*) + rootdir=`echo "$option" | sed 's/--root-directory=//'` ;; + + --boot-directory) + bootdir=`argument $option "$@"`; shift;; + --boot-directory=*) + bootdir=`echo "$option" | sed 's/--boot-directory=//'` ;; + + -*) + gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2 + usage + exit 1 + ;; + *) + if test "x$entry" != x; then + gettext "More than one menu entry?" 1>&2 + echo >&2 + usage + exit 1 + fi + entry="${option}" ;; + esac +done + +if test "x$entry" = x; then + gettext "Menu entry not specified." 1>&2 + echo >&2 + usage + exit 1 +fi + +if [ -z "$bootdir" ]; then + # Default bootdir if bootdir not initialized. + bootdir=/boot + + if [ -n "$rootdir" ] ; then + # Initialize bootdir if rootdir was initialized. + bootdir=${rootdir}/boot + fi +fi + +grubdir=`echo "${bootdir}/grub" | sed 's,//*,/,g'` + +$grub_editenv ${grubdir}/grubenv unset prev_saved_entry +$grub_editenv ${grubdir}/grubenv unset next_entry +$grub_editenv ${grubdir}/grubenv set saved_entry="$entry" + +# Bye. +exit 0 diff --git a/builder/hd-boot/grub/usr/share/grub/ascii.h b/builder/hd-boot/grub/usr/share/grub/ascii.h new file mode 100644 index 00000000..0dab216a --- /dev/null +++ b/builder/hd-boot/grub/usr/share/grub/ascii.h @@ -0,0 +1,132 @@ +/* THIS CHUNK OF BYTES IS AUTOMATICALLY GENERATED */ +unsigned char ascii_bitmaps[] = +{ +0x80, 0x00, 0x80, 0x4a, 0xea, 0x5a, 0xc9, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x39, 0xc2, 0x32, 0x8a, 0x71, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x3b, 0xc1, 0x31, 0x89, 0x71, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x7b, 0xc1, 0x79, 0xc1, 0x79, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x79, 0xc2, 0x7a, 0xc2, 0x79, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x7a, 0xc2, 0x7b, 0xc2, 0x7a, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x31, 0xca, 0x7a, 0xca, 0x49, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x73, 0xca, 0x73, 0xca, 0x73, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x1e, 0x91, 0x1e, 0x91, 0x1e, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x22, 0xa2, 0x3e, 0xa2, 0x22, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x20, 0xa0, 0x20, 0xa0, 0x3e, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x22, 0xa2, 0x22, 0x94, 0x08, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x3e, 0xa0, 0x3e, 0xa0, 0x20, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x1e, 0xa0, 0x20, 0xa0, 0x1e, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x1e, 0xa0, 0x1c, 0x82, 0x3c, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x1e, 0xa0, 0x1c, 0x82, 0x3c, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x39, 0xa5, 0x25, 0xa5, 0x39, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x71, 0xca, 0x4a, 0xca, 0x71, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x71, 0xca, 0x4a, 0xca, 0x71, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x71, 0xca, 0x4a, 0xca, 0x71, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x71, 0xca, 0x4a, 0xca, 0x71, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x49, 0xea, 0x6a, 0xdb, 0x4a, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x34, 0xc2, 0x31, 0x89, 0x71, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x7b, 0xc1, 0x79, 0xc1, 0x79, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x33, 0xc4, 0x47, 0xc4, 0x34, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x3e, 0xa0, 0x3e, 0xa0, 0x3e, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x3a, 0xc2, 0x32, 0x8a, 0x71, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x79, 0xc2, 0x79, 0xc0, 0x7b, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x1e, 0x90, 0x1e, 0x90, 0x10, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x0e, 0x90, 0x16, 0x92, 0x0e, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x1c, 0x92, 0x1c, 0x94, 0x12, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x80, 0x00, 0x80, 0x12, 0x92, 0x12, 0x92, 0x0c, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, +0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x12, 0x12, 0x12, 0x7e, 0x24, 0x24, 0x7e, 0x48, 0x48, 0x48, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x08, 0x3e, 0x49, 0x48, 0x38, 0x0e, 0x09, 0x49, 0x3e, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x31, 0x4a, 0x4a, 0x34, 0x08, 0x08, 0x16, 0x29, 0x29, 0x46, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1c, 0x22, 0x22, 0x14, 0x18, 0x29, 0x45, 0x42, 0x46, 0x39, 0x00, 0x00, 0x00, 0x00, +0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x04, 0x00, 0x00, 0x00, +0x00, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x08, 0x49, 0x2a, 0x1c, 0x2a, 0x49, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x7f, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x10, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x02, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x08, 0x18, 0x28, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x42, 0x42, 0x02, 0x0c, 0x10, 0x20, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x42, 0x42, 0x02, 0x1c, 0x02, 0x02, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x04, 0x0c, 0x14, 0x24, 0x44, 0x44, 0x7e, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7e, 0x40, 0x40, 0x40, 0x7c, 0x02, 0x02, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1c, 0x20, 0x40, 0x40, 0x7c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7e, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x3e, 0x02, 0x02, 0x02, 0x04, 0x38, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x10, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x42, 0x42, 0x02, 0x04, 0x08, 0x08, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1c, 0x22, 0x4a, 0x56, 0x52, 0x52, 0x52, 0x4e, 0x20, 0x1e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x24, 0x24, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x7c, 0x42, 0x42, 0x42, 0x42, 0x7c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x42, 0x42, 0x40, 0x40, 0x40, 0x40, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x78, 0x44, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x44, 0x78, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7e, 0x40, 0x40, 0x40, 0x7c, 0x40, 0x40, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7e, 0x40, 0x40, 0x40, 0x7c, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x42, 0x42, 0x40, 0x40, 0x4e, 0x42, 0x42, 0x46, 0x3a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x7e, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x44, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x42, 0x44, 0x48, 0x50, 0x60, 0x60, 0x50, 0x48, 0x44, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x42, 0x42, 0x66, 0x66, 0x5a, 0x5a, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x42, 0x62, 0x62, 0x52, 0x52, 0x4a, 0x4a, 0x46, 0x46, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x7c, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x5a, 0x66, 0x3c, 0x03, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7c, 0x42, 0x42, 0x42, 0x7c, 0x48, 0x44, 0x44, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x42, 0x42, 0x40, 0x30, 0x0c, 0x02, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7f, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x41, 0x41, 0x41, 0x22, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x5a, 0x5a, 0x66, 0x66, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, 0x24, 0x24, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x41, 0x41, 0x22, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x7e, 0x02, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x0e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0e, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, +0x00, 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x70, 0x00, 0x00, 0x00, +0x18, 0x24, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, +0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x02, 0x3e, 0x42, 0x42, 0x46, 0x3a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x40, 0x40, 0x40, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x40, 0x40, 0x40, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x02, 0x02, 0x02, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x42, 0x46, 0x3a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x7e, 0x40, 0x40, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x0c, 0x10, 0x10, 0x10, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x3a, 0x44, 0x44, 0x44, 0x38, 0x20, 0x3c, 0x42, 0x42, 0x3c, 0x00, 0x00, +0x00, 0x40, 0x40, 0x40, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x08, 0x08, 0x00, 0x18, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x04, 0x04, 0x00, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x48, 0x30, 0x00, 0x00, +0x00, 0x40, 0x40, 0x40, 0x44, 0x48, 0x50, 0x60, 0x50, 0x48, 0x44, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x18, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x76, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x5c, 0x62, 0x42, 0x42, 0x42, 0x42, 0x62, 0x5c, 0x40, 0x40, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3a, 0x46, 0x42, 0x42, 0x42, 0x42, 0x46, 0x3a, 0x02, 0x02, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x5c, 0x62, 0x42, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x40, 0x30, 0x0c, 0x02, 0x42, 0x3c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x10, 0x10, 0x10, 0x7c, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0c, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x46, 0x3a, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x24, 0x24, 0x24, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x41, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x26, 0x1a, 0x02, 0x02, 0x3c, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7e, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x7e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x0c, 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, 0x0c, 0x00, 0x00, 0x00, +0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, +0x00, 0x30, 0x08, 0x08, 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, 0x08, 0x08, 0x30, 0x00, 0x00, 0x00, +0x00, 0x31, 0x49, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x80, 0x00, 0x80, 0x73, 0xca, 0x4b, 0xca, 0x73, 0x80, 0x00, 0x80, 0x00, 0x80, 0x55, 0x00, 0x00, +}; diff --git a/builder/hd-boot/grub/usr/share/grub/ascii.pf2 b/builder/hd-boot/grub/usr/share/grub/ascii.pf2 new file mode 100644 index 00000000..c24244fc Binary files /dev/null and b/builder/hd-boot/grub/usr/share/grub/ascii.pf2 differ diff --git a/builder/hd-boot/grub/usr/share/grub/default/grub.md5sum b/builder/hd-boot/grub/usr/share/grub/default/grub.md5sum new file mode 100644 index 00000000..e8265dc6 --- /dev/null +++ b/builder/hd-boot/grub/usr/share/grub/default/grub.md5sum @@ -0,0 +1,3 @@ +dfad90339e4227d432636ed7d4483744 experimental_1.96+20081129-1 +e916b60d7de71969dd7bad5a809fb9dc lenny_1.96+20080724-16 +965e5137eff659cded3adb640357c33d maverick_1.98+20100705-1ubuntu1 diff --git a/builder/hd-boot/grub/usr/share/grub/euro.pf2 b/builder/hd-boot/grub/usr/share/grub/euro.pf2 new file mode 100644 index 00000000..7ab2f353 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/grub/euro.pf2 differ diff --git a/builder/hd-boot/grub/usr/share/grub/grub-mkconfig_lib b/builder/hd-boot/grub/usr/share/grub/grub-mkconfig_lib new file mode 100644 index 00000000..dfecac65 --- /dev/null +++ b/builder/hd-boot/grub/usr/share/grub/grub-mkconfig_lib @@ -0,0 +1,395 @@ +# Helper library for grub-mkconfig +# Copyright (C) 2007,2008,2009,2010 Free Software Foundation, Inc. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +prefix="/usr" +exec_prefix="/usr" +datarootdir="/usr/share" +datadir="${datarootdir}" +bindir="${exec_prefix}/bin" +sbindir="${exec_prefix}/sbin" +if [ "x$pkgdatadir" = x ]; then + pkgdatadir="${datadir}/grub" +fi + +if test "x$grub_probe" = x; then + grub_probe="${sbindir}/grub-probe" +fi +if test "x$grub_file" = x; then + grub_file="${bindir}/grub-file" +fi +if test "x$grub_mkrelpath" = x; then + grub_mkrelpath="${bindir}/grub-mkrelpath" +fi + +if which gettext >/dev/null 2>/dev/null; then + : +else + gettext () { + printf "%s" "$@" + } +fi + +grub_warn () +{ + echo "$(gettext "Warning:")" "$@" >&2 +} + +make_system_path_relative_to_its_root () +{ + "${grub_mkrelpath}" "$1" +} + +is_path_readable_by_grub () +{ + path="$1" + + # abort if path doesn't exist + if test -e "$path" ; then : ;else + return 1 + fi + + # abort if file is in a filesystem we can't read + if "${grub_probe}" -t fs "$path" > /dev/null 2>&1 ; then : ; else + return 1 + fi + + # ... or if we can't figure out the abstraction module, for example if + # memberlist fails on an LVM volume group. + if abstractions="`"${grub_probe}" -t abstraction "$path"`" 2> /dev/null ; then + : + else + return 1 + fi + + if [ x$GRUB_ENABLE_CRYPTODISK = xy ]; then + return 0 + fi + + for abstraction in $abstractions; do + if [ "x$abstraction" = xcryptodisk ]; then + return 1 + fi + done + + return 0 +} + +convert_system_path_to_grub_path () +{ + path="$1" + + grub_warn "convert_system_path_to_grub_path() is deprecated. Use prepare_grub_to_access_device() instead." + + # abort if GRUB can't access the path + if is_path_readable_by_grub "${path}" ; then : ; else + return 1 + fi + + if drive="`"${grub_probe}" -t drive "$path"`" ; then : ; else + return 1 + fi + + if relative_path="`make_system_path_relative_to_its_root "$path"`" ; then : ; else + return 1 + fi + + echo "${drive}${relative_path}" +} + +save_default_entry () +{ + if [ "x${GRUB_SAVEDEFAULT}" = "xtrue" ] ; then + cat << EOF +savedefault +EOF + fi +} + +prepare_grub_to_access_device () +{ + old_ifs="$IFS" + IFS=' +' + partmap="`"${grub_probe}" --device $@ --target=partmap`" + for module in ${partmap} ; do + case "${module}" in + netbsd | openbsd) + echo "insmod part_bsd";; + *) + echo "insmod part_${module}";; + esac + done + + loop_file= + case $1 in + /dev/loop/*|/dev/loop[0-9]) + grub_loop_device="${1#/dev/}" + loop_file=`losetup "$1" | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` + case $loop_file in + /dev/*) ;; + *) + loop_device="$1" + shift + set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" || return 0 + ;; + esac + ;; + esac + + # Abstraction modules aren't auto-loaded. + abstraction="`"${grub_probe}" --device $@ --target=abstraction`" + for module in ${abstraction} ; do + echo "insmod ${module}" + done + + fs="`"${grub_probe}" --device $@ --target=fs`" + for module in ${fs} ; do + echo "insmod ${module}" + done + + if [ x$GRUB_ENABLE_CRYPTODISK = xy ]; then + for uuid in "`"${grub_probe}" --device $@ --target=cryptodisk_uuid`"; do + echo "cryptomount -u $uuid" + done + fi + + # If there's a filesystem UUID that GRUB is capable of identifying, use it; + # otherwise set root as per value in device.map. + fs_hint="`"${grub_probe}" --device $@ --target=compatibility_hint`" + if [ "x$fs_hint" != x ]; then + echo "set root='$fs_hint'" + fi + if fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then + hints="`"${grub_probe}" --device $@ --target=hints_string 2> /dev/null`" || hints= + echo "if [ x\$feature_platform_search_hint = xy ]; then" + echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}" + echo "else" + echo " search --no-floppy --fs-uuid --set=root ${fs_uuid}" + echo "fi" + fi + IFS="$old_ifs" + + if [ "x${loop_file}" != x ]; then + loop_mountpoint="$(awk '"'${loop_file}'" ~ "^"$2 && $2 != "/" { print $2 }' /proc/mounts | tail -n1)" + if [ "x${loop_mountpoint}" != x ]; then + echo "loopback ${grub_loop_device} ${loop_file#$loop_mountpoint}" + echo "set root=(${grub_loop_device})" + fi + fi +} + +grub_get_device_id () +{ + old_ifs="$IFS" + IFS=' +' + device="$1" + if fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" ; then + echo "$fs_uuid"; + else + echo $device |sed 's, ,_,g' + fi + IFS="$old_ifs" +} + +grub_file_is_not_garbage () +{ + if test -f "$1" ; then + case "$1" in + *.dpkg-*) return 1 ;; # debian dpkg + *.rpmsave|*.rpmnew) return 1 ;; + README*|*/README*) return 1 ;; # documentation + esac + else + return 1 + fi + return 0 +} + +version_sort () +{ + case $version_sort_sort_has_v in + yes) + LC_ALL=C sort -V;; + no) + LC_ALL=C sort -n;; + *) + if sort -V /dev/null 2>&1; then + version_sort_sort_has_v=yes + LC_ALL=C sort -V + else + version_sort_sort_has_v=no + LC_ALL=C sort -n + fi;; + esac +} + +version_test_numeric () +{ + version_test_numeric_a="$1" + version_test_numeric_cmp="$2" + version_test_numeric_b="$3" + if [ "$version_test_numeric_a" = "$version_test_numeric_b" ] ; then + case "$version_test_numeric_cmp" in + ge|eq|le) return 0 ;; + gt|lt) return 1 ;; + esac + fi + if [ "$version_test_numeric_cmp" = "lt" ] ; then + version_test_numeric_c="$version_test_numeric_a" + version_test_numeric_a="$version_test_numeric_b" + version_test_numeric_b="$version_test_numeric_c" + fi + if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | version_sort | head -n 1 | grep -qx "$version_test_numeric_b" ; then + return 0 + else + return 1 + fi +} + +version_test_gt () +{ + version_test_gt_sedexp="s/[^-]*-//;s/[._-]\(pre\|rc\|test\|git\|old\|trunk\)/~\1/g" + version_test_gt_a="`echo "$1" | sed -e "$version_test_gt_sedexp"`" + version_test_gt_b="`echo "$2" | sed -e "$version_test_gt_sedexp"`" + version_test_gt_cmp=gt + if [ "x$version_test_gt_b" = "x" ] ; then + return 0 + fi + case "$version_test_gt_a:$version_test_gt_b" in + *.old:*.old) ;; + *.old:*) version_test_gt_a="`echo -n "$version_test_gt_a" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=gt ;; + *:*.old) version_test_gt_b="`echo -n "$version_test_gt_b" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=ge ;; + esac + dpkg --compare-versions "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" + return "$?" +} + +version_find_latest () +{ + version_find_latest_a="" + for i in "$@" ; do + if version_test_gt "$i" "$version_find_latest_a" ; then + version_find_latest_a="$i" + fi + done + echo "$version_find_latest_a" +} + +# One layer of quotation is eaten by "" and the second by sed; so this turns +# ' into \'. +grub_quote () { + sed "s/'/'\\\\''/g" +} + +gettext_quoted () { + gettext "$@" | grub_quote +} + +# Run the first argument through gettext, and then pass that and all +# remaining arguments to printf. This is a useful abbreviation and tends to +# be easier to type. +gettext_printf () { + gettext_printf_format="$1" + shift + printf "$(gettext "$gettext_printf_format")" "$@" +} + +uses_abstraction () { + device="$1" + old_ifs="$IFS" + IFS=' +' + + abstraction="`"${grub_probe}" --device ${device} --target=abstraction`" + for module in ${abstraction}; do + if test "x${module}" = "x$2"; then + IFS="$old_ifs" + return 0 + fi + done + IFS="$old_ifs" + return 1 +} + +print_option_help () { + if test x$print_option_help_wc = x; then + if wc -L /dev/null 2>&1; then + print_option_help_wc=-L + elif wc -m /dev/null 2>&1; then + print_option_help_wc=-m + else + print_option_help_wc=-b + fi + fi + if test x$grub_have_fmt = x; then + if fmt -w 40 /dev/null 2>&1; then + grub_have_fmt=y; + else + grub_have_fmt=n; + fi + fi + print_option_help_lead=" $1" + print_option_help_lspace="$(echo "$print_option_help_lead" | wc $print_option_help_wc)" + print_option_help_fill="$((26 - print_option_help_lspace))" + printf "%s" "$print_option_help_lead" + if test $print_option_help_fill -le 0; then + print_option_help_nl=y + echo + else + print_option_help_i=0; + while test $print_option_help_i -lt $print_option_help_fill; do + printf " " + print_option_help_i=$((print_option_help_i+1)) + done + print_option_help_nl=n + fi + if test x$grub_have_fmt = xy; then + print_option_help_split="$(echo "$2" | fmt -w 50)" + else + print_option_help_split="$2" + fi + if test x$print_option_help_nl = xy; then + echo "$print_option_help_split" | awk \ + '{ print " " $0; }' + else + echo "$print_option_help_split" | awk 'BEGIN { n = 0 } + { if (n == 1) print " " $0; else print $0; n = 1 ; }' + fi +} + +grub_fmt () { + if test x$grub_have_fmt = x; then + if fmt -w 40 < /dev/null > /dev/null; then + grub_have_fmt=y; + else + grub_have_fmt=n; + fi + fi + + if test x$grub_have_fmt = xy; then + fmt + else + cat + fi +} + +grub_tab=" " + +grub_add_tab () { + sed -e "s/^/$grub_tab/" +} + diff --git a/builder/hd-boot/grub/usr/share/grub/unicode.pf2 b/builder/hd-boot/grub/usr/share/grub/unicode.pf2 new file mode 100644 index 00000000..d955ce5f Binary files /dev/null and b/builder/hd-boot/grub/usr/share/grub/unicode.pf2 differ diff --git a/builder/hd-boot/grub/usr/share/grub/widthspec.h b/builder/hd-boot/grub/usr/share/grub/widthspec.h new file mode 100644 index 00000000..336e262f --- /dev/null +++ b/builder/hd-boot/grub/usr/share/grub/widthspec.h @@ -0,0 +1,516 @@ +/* THIS CHUNK OF BYTES IS AUTOMATICALLY GENERATED */ +unsigned char widthspec[] = +{ +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, +0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x03, +0x0f, 0x28, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x80, 0x01, 0x01, 0x00, 0x00, 0x00, +0x00, 0x79, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xf8, 0xe0, 0xff, +0xff, 0xc9, 0xfe, 0x77, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf7, 0x9f, 0x3f, 0x00, 0x80, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, +0x69, 0xda, 0x0f, 0x01, 0x51, 0x13, 0x00, 0xc4, 0xa0, 0xc0, 0x00, 0x0c, 0xff, 0xff, 0xff, 0xff, +0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xef, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xf3, 0xe3, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, +0xef, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x40, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, +0xff, 0xff, 0xa0, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xc0, +0x1f, 0xc0, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0xff, 0x0f, 0x03, 0x30, 0xfc, 0x3c, 0xfc, 0xff, 0xfb, 0xff, 0x9f, 0x7f, 0x00, +0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xfe, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf1, 0xf7, 0xbf, 0xef, 0xff, 0xff, 0x00, 0xfc, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, +0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x55, 0x00, 0x00, 0x00, 0xc0, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x10, 0x00, 0x00, 0x23, 0x80, +0x00, 0xf8, 0x02, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xff, 0xff, 0x0c, 0x00, +0x00, 0x80, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xc2, 0xff, 0xff, 0x00, 0xe0, 0x9d, 0x04, 0xfe, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x61, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9e, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0xae, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, +0xfe, 0xff, 0x9f, 0x07, 0x00, 0x00, 0x7c, 0x00, 0xff, 0x67, 0xf0, 0xfb, 0xff, 0xfe, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x08, 0x00, 0xe0, 0x03, 0x1c, 0x98, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, +0xff, 0xff, 0xfc, 0xff, 0xfd, 0xe2, 0x43, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0x1a, 0xfb, 0xe5, 0xff, 0x3e, 0x00, 0xff, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xff, 0xfc, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0x4d, 0xcd, 0xcc, 0xfc, 0xff, 0xff, 0xcf, +0x02, 0x00, 0x78, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfc, 0xff, 0xf7, 0x1f, 0xc0, +0xff, 0xff, 0xff, 0x3f, 0x81, 0x60, 0xf8, 0x8f, 0x3f, 0xf0, 0xff, 0xff, 0x3f, 0x43, 0x70, 0xff, +0xff, 0x67, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xe1, 0x87, 0xbf, 0xff, 0x3f, 0xb8, 0x3f, +0x3f, 0xdf, 0xff, 0x9f, 0x1f, 0x30, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0x00, 0x80, 0x00, 0x80, 0x80, 0x83, 0x00, 0x80, 0x00, 0x80, 0x80, 0x83, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x80, 0xfc, 0xf0, 0x01, +0xa0, 0x24, 0x19, 0x18, 0x61, 0xdf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, +0x00, 0xc0, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x30, 0x03, 0x40, 0xff, 0x70, 0x05, 0x00, +0x30, 0x00, 0x0c, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xfc, 0x3f, 0x00, 0xc0, 0x00, 0x03, 0x00, 0x00, 0xfe, 0x00, +0x00, 0x80, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, +0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xbf, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e, 0x7f, 0x00, 0xde, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0x80, 0xff, 0x07, 0x1f, 0xfe, 0x01, 0x80, 0xa0, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x80, 0x22, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x78, +0x00, 0x00, 0x80, 0x07, 0x00, 0xe0, 0xf7, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, +0xff, 0xff, 0xff, 0xff, 0x80, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, +0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x03, 0x03, 0xe3, 0xff, 0x80, 0xff, 0x1f, +}; diff --git a/builder/hd-boot/grub/usr/share/locale/de_CH/LC_MESSAGES/grub.mo b/builder/hd-boot/grub/usr/share/locale/de_CH/LC_MESSAGES/grub.mo new file mode 100644 index 00000000..8a29907f Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/de_CH/LC_MESSAGES/grub.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/en_US/LC_MESSAGES/mit-krb5.mo b/builder/hd-boot/grub/usr/share/locale/en_US/LC_MESSAGES/mit-krb5.mo new file mode 100644 index 00000000..686ddec8 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/en_US/LC_MESSAGES/mit-krb5.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/Linux-PAM.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/Linux-PAM.mo new file mode 100644 index 00000000..4686ca04 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/Linux-PAM.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/adduser.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/adduser.mo new file mode 100644 index 00000000..0a916330 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/adduser.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/apt-utils.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/apt-utils.mo new file mode 100644 index 00000000..8d628552 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/apt-utils.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/apt.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/apt.mo new file mode 100644 index 00000000..23c6c9cc Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/apt.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/bash.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/bash.mo new file mode 100644 index 00000000..610f4f92 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/bash.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/console-data.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/console-data.mo new file mode 100644 index 00000000..2a149822 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/console-data.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/coreutils.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/coreutils.mo new file mode 100644 index 00000000..a530103f Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/coreutils.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/cpio.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/cpio.mo new file mode 100644 index 00000000..b33133ad Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/cpio.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/debconf.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/debconf.mo new file mode 100644 index 00000000..bb3b1a06 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/debconf.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/debian-tasks.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/debian-tasks.mo new file mode 100644 index 00000000..a9e575c0 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/debian-tasks.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dialog.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dialog.mo new file mode 100644 index 00000000..de7bf37c Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dialog.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/diffutils.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/diffutils.mo new file mode 100644 index 00000000..7a46717c Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/diffutils.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dnsmasq.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dnsmasq.mo new file mode 100644 index 00000000..62cfeb2a Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dnsmasq.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dpkg.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dpkg.mo new file mode 100644 index 00000000..47407b1c Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/dpkg.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/findutils.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/findutils.mo new file mode 100644 index 00000000..96dec971 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/findutils.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gdk-pixbuf.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gdk-pixbuf.mo new file mode 100644 index 00000000..9600d484 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gdk-pixbuf.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo new file mode 100644 index 00000000..a67b2469 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/glib20.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/glib20.mo new file mode 100644 index 00000000..4cb8edf7 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/glib20.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gnupg.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gnupg.mo new file mode 100644 index 00000000..5c146715 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gnupg.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gprof.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gprof.mo new file mode 100644 index 00000000..32876f76 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/gprof.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/grep.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/grep.mo new file mode 100644 index 00000000..df36b5bf Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/grep.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/grub.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/grub.mo new file mode 100644 index 00000000..c2a5e07f Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/grub.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/install-keymap.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/install-keymap.mo new file mode 100644 index 00000000..02c70658 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/install-keymap.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libapt-inst1.5.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libapt-inst1.5.mo new file mode 100644 index 00000000..c8acb44e Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libapt-inst1.5.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libapt-pkg4.12.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libapt-pkg4.12.mo new file mode 100644 index 00000000..3c6ac08c Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libapt-pkg4.12.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libc.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libc.mo new file mode 100644 index 00000000..80bba2b0 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/libc.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/make.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/make.mo new file mode 100644 index 00000000..c19c8c54 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/make.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/man-db-gnulib.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/man-db-gnulib.mo new file mode 100644 index 00000000..0711ded0 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/man-db-gnulib.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/man-db.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/man-db.mo new file mode 100644 index 00000000..5ec4db44 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/man-db.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/nano.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/nano.mo new file mode 100644 index 00000000..6ea63c9b Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/nano.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/net-tools.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/net-tools.mo new file mode 100644 index 00000000..bcb6dbfe Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/net-tools.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/newt.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/newt.mo new file mode 100644 index 00000000..ae2ea44a Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/newt.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/opcodes.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/opcodes.mo new file mode 100644 index 00000000..083e8f42 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/opcodes.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/sed.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/sed.mo new file mode 100644 index 00000000..fc7de7d9 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/sed.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/shadow.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/shadow.mo new file mode 100644 index 00000000..285caf3c Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/shadow.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/shared-mime-info.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/shared-mime-info.mo new file mode 100644 index 00000000..ad2924f3 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/shared-mime-info.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/sharutils.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/sharutils.mo new file mode 100644 index 00000000..1f6e7bc2 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/sharutils.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/tar.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/tar.mo new file mode 100644 index 00000000..f3a6dd1b Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/tar.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/tasksel.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/tasksel.mo new file mode 100644 index 00000000..9b089d1b Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/tasksel.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/wget.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/wget.mo new file mode 100644 index 00000000..d319a742 Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/wget.mo differ diff --git a/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/xdg-user-dirs.mo b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/xdg-user-dirs.mo new file mode 100644 index 00000000..9e8ed9ad Binary files /dev/null and b/builder/hd-boot/grub/usr/share/locale/pt_BR/LC_MESSAGES/xdg-user-dirs.mo differ diff --git a/builder/hd-boot/grub/usr/share/os-prober/common.sh b/builder/hd-boot/grub/usr/share/os-prober/common.sh new file mode 100644 index 00000000..30e245ed --- /dev/null +++ b/builder/hd-boot/grub/usr/share/os-prober/common.sh @@ -0,0 +1,285 @@ +newns () { + [ "$OS_PROBER_NEWNS" ] || exec /usr/lib/os-prober/newns "$0" "$@" +} + +cleanup_tmpdir=false +cleanup_ro_partitions= +cleanup () { + local partition + for partition in $cleanup_ro_partitions; do + blockdev --setrw "$partition" + done + if $cleanup_tmpdir; then + rm -rf "$OS_PROBER_TMP" + fi +} + +require_tmpdir() { + if [ -z "$OS_PROBER_TMP" ]; then + if type mktemp >/dev/null 2>&1; then + export OS_PROBER_TMP="$(mktemp -d /tmp/os-prober.XXXXXX)" + cleanup_tmpdir=: + trap cleanup EXIT HUP INT QUIT TERM + else + export OS_PROBER_TMP=/tmp + fi + fi +} + +count_for() { + _labelprefix="$1" + _result=$(grep "^${_labelprefix} " /var/lib/os-prober/labels 2>/dev/null || true) + + if [ -z "$_result" ]; then + return + else + echo "$_result" | cut -d' ' -f2 + fi +} + +count_next_label() { + require_tmpdir + + _labelprefix="$1" + _cfor="$(count_for "${_labelprefix}")" + + if [ -z "$_cfor" ]; then + echo "${_labelprefix} 1" >> /var/lib/os-prober/labels + else + sed "s/^${_labelprefix} ${_cfor}/${_labelprefix} $(($_cfor + 1))/" /var/lib/os-prober/labels > "$OS_PROBER_TMP/os-prober.tmp" + mv "$OS_PROBER_TMP/os-prober.tmp" /var/lib/os-prober/labels + fi + + echo "${_labelprefix}${_cfor}" +} + +progname= +cache_progname() { + case $progname in + '') + progname="$(basename "$0")" + ;; + esac +} + +log() { + cache_progname + logger -t "$progname" "$@" +} + +error() { + log "error: $@" +} + +warn() { + log "warning: $@" +} + +debug() { + log "debug: $@" +} + +result () { + log "result:" "$@" + echo "$@" +} + +# shim to make it easier to use os-prober outside d-i +if ! type mapdevfs >/dev/null 2>&1; then + mapdevfs () { + readlink -f "$1" + } +fi + +item_in_dir () { + if [ "$1" = "-q" ]; then + q="-q" + shift 1 + else + q="" + fi + [ -d "$2" ] || return 1 + # find files with any case + ls -1 "$2" | grep $q -i "^$1$" +} + +# We can't always tell the filesystem type up front, but if we have the +# information then we should use it. Note that we can't use block-attr here +# as it's only available in udebs. +fs_type () { + if (export PATH="/lib/udev:$PATH"; type vol_id) >/dev/null 2>&1; then + PATH="/lib/udev:$PATH" vol_id --type "$1" 2>/dev/null + elif type blkid >/dev/null 2>&1; then + blkid -o value -s TYPE "$1" 2>/dev/null + else + return 0 + fi +} + +parse_proc_mounts () { + while read -r line; do + set -f + set -- $line + set +f + printf '%s %s %s\n' "$(mapdevfs "$1")" "$2" "$3" + done +} + +parsefstab () { + while read -r line; do + case "$line" in + "#"*) + : + ;; + *) + set -f + set -- $line + set +f + printf '%s %s %s\n' "$1" "$2" "$3" + ;; + esac + done +} + +unescape_mount () { + printf %s "$1" | \ + sed 's/\\011/ /g; s/\\012/\n/g; s/\\040/ /g; s/\\134/\\/g' +} + +ro_partition () { + if type blockdev >/dev/null 2>&1 && \ + [ "$(blockdev --getro "$1")" = 0 ] && \ + blockdev --setro "$1"; then + cleanup_ro_partitions="${cleanup_ro_partitions:+$cleanup_ro_partitions }$1" + trap cleanup EXIT HUP INT QUIT TERM + fi +} + +find_label () { + local output + if type blkid >/dev/null 2>&1; then + # Hopefully everyone has blkid by now + output="$(blkid -o device -t LABEL="$1")" || return 1 + echo "$output" | head -n1 + elif [ -h "/dev/disk/by-label/$1" ]; then + # Last-ditch fallback + readlink -f "/dev/disk/by-label/$1" + else + return 1 + fi +} + +find_uuid () { + local output + if type blkid >/dev/null 2>&1; then + # Hopefully everyone has blkid by now + output="$(blkid -o device -t UUID="$1")" || return 1 + echo "$output" | head -n1 + elif [ -h "/dev/disk/by-uuid/$1" ]; then + # Last-ditch fallback + readlink -f "/dev/disk/by-uuid/$1" + else + return 1 + fi +} + +# Sets $mountboot as output variable. (We do this rather than requiring a +# subshell so that we can run ro_partition without the cleanup trap firing +# when the subshell exits.) +linux_mount_boot () { + partition="$1" + tmpmnt="$2" + + bootpart="" + mounted="" + if [ -e "$tmpmnt/etc/fstab" ]; then + # Try to mount any /boot partition. + bootmnt=$(parsefstab < "$tmpmnt/etc/fstab" | grep " /boot ") || true + if [ -n "$bootmnt" ]; then + set -f + set -- $bootmnt + set +f + boottomnt="" + + # Try to map labels and UUIDs ourselves if possible, + # so that we can check whether they're already + # mounted somewhere else. + tmppart="$1" + if echo "$1" | grep -q "LABEL="; then + label="$(echo "$1" | cut -d = -f 2)" + if tmppart="$(find_label "$label")"; then + debug "mapped LABEL=$label to $tmppart" + else + debug "found boot partition LABEL=$label for Linux system on $partition, but cannot map to existing device" + mountboot="$partition 0" + return + fi + elif echo "$1" | grep -q "UUID="; then + uuid="$(echo "$1" | cut -d = -f 2)" + if tmppart="$(find_uuid "$uuid")"; then + debug "mapped UUID=$uuid to $tmppart" + else + debug "found boot partition UUID=$uuid for Linux system on $partition, but cannot map to existing device" + mountboot="$partition 0" + return + fi + fi + shift + set -- "$(mapdevfs "$tmppart")" "$@" + + if grep -q "^$1 " "$OS_PROBER_TMP/mounted-map"; then + bindfrom="$(grep "^$1 " "$OS_PROBER_TMP/mounted-map" | head -n1 | cut -d " " -f 2)" + bindfrom="$(unescape_mount "$bindfrom")" + if [ "$bindfrom" != "$tmpmnt/boot" ]; then + if mount --bind "$bindfrom" "$tmpmnt/boot"; then + mounted=1 + bootpart="$1" + else + debug "failed to bind-mount $bindfrom onto $tmpmnt/boot" + fi + fi + fi + if [ "$mounted" ]; then + : + elif [ -e "$1" ]; then + bootpart="$1" + boottomnt="$1" + elif [ -e "$tmpmnt/$1" ]; then + bootpart="$1" + boottomnt="$tmpmnt/$1" + elif [ -e "/target/$1" ]; then + bootpart="$1" + boottomnt="/target/$1" + else + bootpart="" + fi + + if [ ! "$mounted" ]; then + if [ -z "$bootpart" ]; then + debug "found boot partition $1 for linux system on $partition, but cannot map to existing device" + else + debug "found boot partition $bootpart for linux system on $partition" + if type grub-mount >/dev/null 2>&1 && \ + grub-mount "$boottomnt" "$tmpmnt/boot" 2>/dev/null; then + mounted=1 + else + ro_partition "$boottomnt" + if mount -o ro "$boottomnt" "$tmpmnt/boot" -t "$3"; then + mounted=1 + else + error "failed to mount $boottomnt on $tmpmnt/boot" + fi + fi + fi + fi + fi + fi + if [ -z "$bootpart" ]; then + bootpart="$partition" + fi + if [ -z "$mounted" ]; then + mounted=0 + fi + + mountboot="$bootpart $mounted" +} diff --git a/builder/hd-boot/hooks/gen-netfiles.sh b/builder/hd-boot/hooks/gen-netfiles.sh new file mode 100755 index 00000000..e57537d3 --- /dev/null +++ b/builder/hd-boot/hooks/gen-netfiles.sh @@ -0,0 +1,43 @@ +#!/bin/sh +# +# If you wish to provide a default name when 40network/ifname-genrules.sh +# dracut module generates, provide a kernel parameter ifname=:[mac], +# if mac will be passed a default udev rule ifup will be generated by +# dracut (40network/net-genrules.sh) module. +# +# This script generates two files: /tmp/net.{bootneet,ifaces} +# that dracut udev rules (generated dynamically) uses to generate. +# On this manner the interface is brought up. + +debug_off() { + set +x +} + +debug_on() { + [ "$RD_DEBUG" = "yes" ] && set -x +} + +#debug_on +# if boot PXE BOOTIF takes precedence in ifname= +# kernel parameter. +bootdev="" +if [ -n "$BOOTIF" ]; then + # no BOOTIF from PXELINUX (IPAPPEND 2) + bootdev="bootnet:$(echo "${BOOTIF#*-}" | tr '-' ':')" +elif [ -n "$ifname" ]; then + bootdev="$ifname" +else + # dracut won't generate the rule to change the iterface name, + # it will assume NAME=kernel from udev. + warn "No either BOOTIF= (IPAPPEND 2) or ifname= (kernel parameter) has been defined." + return 1 +fi + +echo "${bootdev%%:*}" > /tmp/net.bootdev + +if echo "$bootdev" | grep -q -o '..:..:..:..:..:..'; then + echo "${bootdev#*:}" > /tmp/net.ifaces +fi +#debug_off + +return 0 diff --git a/builder/hd-boot/hooks/get_root_part.sh b/builder/hd-boot/hooks/get_root_part.sh new file mode 100755 index 00000000..feed6f5f --- /dev/null +++ b/builder/hd-boot/hooks/get_root_part.sh @@ -0,0 +1,68 @@ +# Copyright (c) 2013 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found under http://openslx.org +# +# Local hard disk autodetection script for OpenSLX linux stateless clients, +# detecting swap and special partitions +############################################################################# + +# Define default values, in case config could not be fetched. +SLX_PART_ID=0x49 +SLX_GPT_PART_NAME=hddbwlehrpool + +CONFIG_FILE_NAME="config" +if [ -f "${SLX_CONFIGURATION_LOCATION}/${CONFIG_FILE_NAME}" ]; then + source "${SLX_CONFIGURATION_LOCATION}/${CONFIG_FILE_NAME}" +fi + +# Param - none +# +# Return: stdout list of device(s) with id or pattern in case gpt. +# also return number of partitions found. +get_root_part() +{ + local count lst_blkdev pttype type_id pattern + + count=0 + lst_blkdev=$(lsblk --noheadings --nodeps --path --all --raw --output KNAME) + for device in $lst_blkdev; do + pttype=$(blkid -s PTTYPE -o value "$device") + if [ -n "$pttype" ]; then + case "$pttype" in + gpt) type_id=PARTLABEL; pattern="$SLX_GPT_PART_NAME" ;; + dos) type_id=PARTTYPE; pattern="$SLX_PART_ID" ;; + *) type_id="" + esac + + shopt -s lastpipe + lsblk --noheadings --paths --raw --output KNAME,$type_id "$device" | + while read dev clue; do + if [ "$clue" == "$pattern" ]; then + ((count++)) + echo "$dev" + fi + done + shopt -u lastpipe + fi + done + + return $count +} + +# Wait for the event queue to be empty, +# perhaps block devices are been populated. +udevadm settle + +ROOT_HDD_BWLEHRPOOL=$(get_root_part) +# Sanity check, did we found more than one partition? +if [ $? -gt 1 ]; then + emergency_shell "It has been found more than one partion, the root partion could not be determined." +fi + +export ROOT_HDD_BWLEHRPOOL diff --git a/builder/hd-boot/hooks/ifup_lo.sh b/builder/hd-boot/hooks/ifup_lo.sh new file mode 100644 index 00000000..90d73b33 --- /dev/null +++ b/builder/hd-boot/hooks/ifup_lo.sh @@ -0,0 +1,5 @@ +if ! ip link set lo up; then + warn "loop back interface could not bring up." + emergency_shell -n "Error: $0" +fi + diff --git a/builder/hd-boot/hooks/mount-root-device.sh b/builder/hd-boot/hooks/mount-root-device.sh new file mode 100755 index 00000000..bbd01ee6 --- /dev/null +++ b/builder/hd-boot/hooks/mount-root-device.sh @@ -0,0 +1,9 @@ +mount "/dev/mapper/$BLOCK_DM" "$NEWROOT" $SLX_MOUNT_ROOT_OPTIONS && \ +# Write fstab for recognized system partition. +sed --in-place --quiet "/${SLX_SYSTEM_PARTITION_IDENTIFIER}.*/!s/.*//" \ + "$NEWROOT/etc/fstab" + +mkdir "${NEWROOT}/${DIR_ROOT}" +mount --move "$DIR_ROOT" "${NEWROOT}/${DIR_ROOT}" +rmdir "$DIR_ROOT" +mount --bind "${NEWROOT}/${DIR_ROOT}/boot" "${NEWROOT}/boot" diff --git a/builder/hd-boot/hooks/partitioner.sh b/builder/hd-boot/hooks/partitioner.sh new file mode 100755 index 00000000..22d31258 --- /dev/null +++ b/builder/hd-boot/hooks/partitioner.sh @@ -0,0 +1,359 @@ +#!/bin/sh +# Copyright (c) 2013 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found under http://openslx.org +# +# Local hard disk autodetection script for OpenSLX linux stateless clients, +# detecting swap and special partitions +############################################################################# + + +############################################################################# +# Requirements: + +. "/usr/lib/hd-boot/common-lib.sh" +. "/usr/lib/rebash/core.sh" +core.import utils + +set PERC_AVAILABLE_SPACE # Rate to use of the free space +set MIN_SIZE_IN_BYTES +set DISK_LIST= +set DISK +set SIZE +set START_SEC +set END_SEC +set SLX_PART_ID +set PART_NUM +set LAST_ERR +set DISK_PART +set FS_TYPE + +FS_TYPE=ext4 + +if [ -f "${SLX_CONFIGURATION_LOCATION}/$CONFIG_FILE_NAME" ]; then + source "${SLX_CONFIGURATION_LOCATION}/$CONFIG_FILE_NAME" +else + warn "Config file could no be fould at ${SLX_CONFIGURATION_LOCATION}/$CONFIG_FILE_NAME" +fi + +get_size_of_parts() { + local device=$1 + + lsblk --noheadings --raw --bytes --output SIZE "$device" | awk '{if(NR>1)print}' | + (size=0; s=; while read s + do + size=$(echo "$size+$s" | bc) + done && echo $size) +} + +get_disk_list2() { + local min_size=$1 use_max=$2 + local list lst + local device ro rv disk_size + local size_parts space_avail + + lsblk --nodeps --noheadings --raw --paths --bytes --output KNAME,TYPE,RO,RM,SIZE | + while read device ty ro rv disk_size + do + # if is type of disk + if [ "$ty" == "disk" -a $ro -eq 0 ]; then + size_parts=$(get_size_of_parts "$device") + if [ $disk_size -gt $size_parts ]; then + space_avail=$(echo "$disk_size-$size_parts" | bc) + space_avail=$(printf %.f $(echo "scale=2; $space_avail * ($use_max/100)" | bc)) + if [ $space_avail -ge $min_size ]; then + #TODO: list of disks available + echo "$device $space_avail $rv" + fi + fi + fi + done +} + +# Param +# $1 - device to be queried. +# +# Return: three fields space separeted in sectors unit. +# +get_avail_space() { + local space ret="0 0 0" + + if space=$(parted --script --machine "$1" unit s print free); then + #TODO: In case there is a gap and a second gap that could be used, the second gap would be missed, + # so must interact in all list of empty space + ret=$(echo "$space" | grep -Eo '^[0-9]+:[0-9]+s:[0-9]+s:[0-9]+s.*free;$' | \ + tr -d 's' | awk -F ':' '{if( $4 > 2048 ) print $2" "$3" "$4}') + [ -z "$ret" ] && ret="0 0 0" + fi + + echo $ret +} + +get_disk_list() { + local min_size_sec use_max=$2 + + lsblk --nodeps --noheadings --raw --paths --bytes --output KNAME,TYPE,RO,RM,LOG-SEC | + while read device ty ro rv logsec + do + # if is type of disk + if [ "$ty" == "disk" -a $ro -eq 0 ]; then + buff=$(get_avail_space "$device") + space_avail=$(echo "$buff" | cut -d ' ' -f3) + if [ $space_avail -gt 0 ]; then + # TODO: interact in the list of avaliable space + # Get space according to the user requirement, + # buff could get more than one item, see get_avail_space(). + space_avail=$(printf %.f $(echo "scale=2; $space_avail * ($use_max/100)" | bc)) + if [ $use_max -lt 100 ]; then + start_sec=$(echo "$buff" | cut -d' ' -f1) + end_sec=$(echo "$start_sec+$space_avail" | bc) + buff="$start_sec $end_sec `echo "scale=0; $end_sec-$start_sec" | bc`" + fi + + min_size_sec=$(echo "scale=0; $1/$logsec" | bc) + if [ $space_avail -ge $min_size_sec ]; then + echo "$device $space_avail `echo $buff | awk '{print $1" "$2}'` $rv" + fi + fi + fi + done +} + +# Default partition table will be gpt +default_part_table() { + local device=$1 + + # Sanity check, leave clean part table + # Clean up part table gpt, also MBR + sgdisk --zap-all "$device" &> /dev/null + sgdisk --randomize-guids "$device" &> /dev/null + [[ $? -ne 0 ]] && perror "Partition table could not be created." + + return $? +} + +create_gpt_part() +{ + local device=$1 part_num=$2 start_sec=$3 end_sec=$4 + + info "Creating partition at $device start=$start_sec end=$end_sec" + sgdisk --new=${part_num}:$start_sec:$end_sec "$device" &> /dev/null + [[ $? -ne 0 ]] && perror "Partition could not be created." && return $? + + sgdisk --change-name=${part_num}:${SLX_GPT_PART_NAME_CODE} "$device" &> /dev/null + [[ $? -ne 0 ]] && perror "Name of partition could not be set." && \ + sgdisk --delete=$part_num &> /dev/null && return $? + + sgdisk --type-code=${part_num}:${SLX_PART_ID} "$device" &> /dev/null + [[ $? -ne 0 ]] && perror "Type code of partition could not be set." && \ + sgdisk --delete=$part_num &> /dev/null && return $? + + info "Creating file system, ext4 at device '"${device}${part_num}"'." + mkfs.ext4 -F "${device}${part_num}" + # TODO: threat errors +} + +create_dos_part() +{ + local device=$1 part_num=$2 start_sec=$3 end_sec=$4 + local count dif mod + + # Partition must be in a boundary of 2048 sectors (1048576 Bytes) + [ $start_sec -lt 2048 ] && start_sec=2048 + + # make end of partition align at 2048 sectors boundary. + mod=$(echo "scale=0; $end_sec % 2048" | bc) + if [ $mod -ne 0 ]; then + # align + end_sec=$(echo "$end_sec - $mod" | bc) + # sanity check, it must be aligned. + mod=$(echo "scale=0; $end_sec % 2048" | bc) + [ $mod -ne 0 ] && die "Bug: dos partition is not aligned in 2048s boundary." + fi + + info "Creating partition at $device start=$start_sec end=$end_sec" + if ! parted --script --machine --align=optimal "$device" unit s mkpart primary "$start_sec" "$end_sec"; then + emergency_shell "Partition could not be created." + fi + + # probe of new partition, so block device will be created. + partx --add --nr "$part_num" "$device" &> /dev/null + + # change id of partition. + if ! sfdisk --change-id "$device" "$part_num" "$SLX_PART_ID"; then + die "Partition id could not be assigned." + fi + + info "Creating file system, ext4 at device ${device}${part_num}." + if ! mkfs --type "$FS_TYPE" -F "${device}${part_num}"; then + die "File system could not be created." + fi +} + +set_iface_to_cmdline() +{ + local tmp + + tmp="$(cat /usr/share/grub/default/grub | grep -w 'GRUB_CMDLINE_LINUX=')" + [ -n "$tmp" ] || return 1 + + mac=$(cat /tmp/net.ifaces) + [ -n "$mac" ] || return 1 + + _head="${tmp#*=\"}" + _head="${_head%\"}" + _tail="ifname=$(cat /tmp/net.bootdev):$mac" + sed -r -i "s#GRUB_CMDLINE_LINUX=[\"].*[\"]#GRUB_CMDLINE_LINUX=\"$_head $_tail\"#" /usr/share/grub/default/grub +} + +install_boot_loader() +{ + local dev="$1" dir_root="$2" + + info "Installing grub, this may take some time, BE PATIENT! ..." + if ! grub-install --recheck --target=i386-pc --boot-directory="${dir_root}/boot/" "$dev"; then + die "Failed instalation of boot loader." + fi + + [ ! -d "/boot" ] && mkdir "/boot" + if ! mount --bind "${dir_root}/boot" "/boot"; then + die "Could not bind directory \"${dir_root}/boot\" at \"/boot\"" + fi + + info "Setting iface to the cmdline..." + set_iface_to_cmdline + + info "Generating boot loader configuration..." + if ! grub-mkconfig -o "/boot/grub/grub.cfg"; then + die "Failed generating grub configuration." + fi + umount "/boot" + +} + +install_system() +{ + local dev=$1 inst_dir= + + info "Installing base system..." + inst_dir=$(get_root_dir) + cache_dir=$(get_cache_dir) + if ! mkdir -p -- "$inst_dir"; then + die "Mount point at \"$inst_dir\" could no be created." + fi + if ! mount -o rw -t "$FS_TYPE" "$dev" "$inst_dir"; then + die "Could not be mount \"$dev\" at \"$inst_dir\"." + fi + + # create boot dir in hd. + if ! mkdir -- "${inst_dir}/boot"; then + die "\"${inst_dir}/boot\" could not be created." + fi + # create cache directory + if ! mkdir -- "$cache_dir"; then + die "\"$cache_dir\" could not be created." + fi + + info "Installing kernel..." + # Fetch kernel and initramfs. + if ! wget -T 5 -nv "http://${SLX_SERVER}/${SLX_HDD_SETUP}/${SLX_KERNEL}" \ + -O "${inst_dir}/boot/${SLX_KERNEL}"; then + die "Could no fetch kernel from: "\ + "http://${SLX_SERVER}/${SLX_HDD_SETUP}/${SLX_KERNEL}" + fi + info "Installing initrd..." + if ! wget -T 5 -nv "http://${SLX_SERVER}/${SLX_HDD_SETUP}/${SLX_INITRAMFS}" \ + -O "${inst_dir}/boot/${SLX_INITRAMFS}"; then + die "Could no fetch initramfs from: "\ + "http://${SLX_SERVER}/${SLX_HDD_SETUP}/${SLX_INITRAMFS}" + fi + + # install in the MBR of device, not in partition. + install_boot_loader "${dev%%[0-9]*}" "$inst_dir" + + # umount instalation directory, next hook mount will do + # in this manner we avoid checks in mount, since this will + # happen just once. + umount "$inst_dir" + info "Done with the base system." + + export HDD_INSTALATION="$inst_dir" + export ROOT_HDD_BWLEHRPOOL="$dev" +} + + +# ____________________________MAIN__________________________________________ +# Check if we've got a partition +# This var will be exported by get_root_part.sh script. +if [ -z "$ROOT_HDD_BWLEHRPOOL" ]; then + PERC_AVAILABLE_SPACE=100 + MIN_SIZE_IN_BYTES=$(echo "scale=0; $SLX_PART_MIN_SIZE * 2^30" | bc) + + info "Getting list of disks..." + DISK_LIST=$(get_disk_list "$MIN_SIZE_IN_BYTES" "$PERC_AVAILABLE_SPACE") + # If there is no a disk with minimum requirements, pop error and exit. + if [ "x$DISK_LIST" == "x" ]; then + perror "Could not be found a disk unpartitioned with at least requirements of $SLX_PART_MIN_SIZE GB. Leave a disk unpartitioned with the least requirements." + emergency_shell -n "error" "no free space has been found." + fi + + #TODO: if more than one disk has been found, give a choice to the user. + + DISK=$(echo $DISK_LIST | awk '{print $1}') + SIZE=$(echo $DISK_LIST | awk '{print $2}') + START_SEC=$(echo $DISK_LIST | awk '{print $3}') + END_SEC=$(echo $DISK_LIST | awk '{print $4}') + + info "Getting type of partition table..." + PTTYPE=$(blkid -s PTTYPE -o value "$DISK") + LAST_ERR=$? + # If there is no partition table default to gpt + if [ -z "$PTTYPE" ]; then + if [ $LAST_ERR -eq 2 ]; then + # If type of partition table can not be found default to gpt. + default_part_table "$DISK" + # query again for the partition table, it should have a gpt partition table. + PTTYPE=$(blkid -s PTTYPE -o value "$DISK") + [[ $? -ne 0 ]] && perror "Fatal error setting default gpt partition table. Reboot the system." + # If we created a new partition table; so this will be the first partion. + PART_NUM=1 + else + perror "Fatal error occured, tool to detect gpt table returned: $LAST_ERR." + fi + else + # find out number of the last partition. + PART_NUM=$(sgdisk --print "$DISK" | grep -E '^[ ,\t]+[0-9]*' | tail -1 | awk '{print $1}') + ((PART_NUM++)) + fi + + DISK_PART="${DISK}${PART_NUM}" + + case "$PTTYPE" in + gpt) create_gpt_part "$DISK" "$PART_NUM" "$START_SEC" "$END_SEC" ;; + dos) create_dos_part "$DISK" "$PART_NUM" "$START_SEC" "$END_SEC" ;; + *) emergency_shell "Fatal, parition table could not be parsed." ;; + esac + + + # Mount and install the system + install_system "${DISK}${PART_NUM}" +fi + +unset PERC_AVAILABLE_SPACE # Rate to use of the free space +unset MIN_SIZE_IN_BYTES +unset DISK_LIST +unset DISK +unset SIZE +unset START_SEC +unset END_SEC +unset SLX_PART_ID +unset PART_NUM +unset LAST_ERR +unset DISK_PART +unset FS_TYPE diff --git a/builder/hd-boot/hooks/prepare-kernel-command-line-parameter.sh b/builder/hd-boot/hooks/prepare-kernel-command-line-parameter.sh new file mode 100755 index 00000000..3f459567 --- /dev/null +++ b/builder/hd-boot/hooks/prepare-kernel-command-line-parameter.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +debug_off() { + set +x +} + +debug_on() { + [ "$RD_DEBUG" = "yes" ] && set -x +} + +#debug_on +# Overwrite /proc/cmdline so, we always have dhcp client running. +_cmdline=$(cat /proc/cmdline) +if echo "$_cmdline" | grep -q 'ip='; then + echo "$_cmdline" > /tmp/cmdline + sed -r -i 's/ip=[^ ]* /ip=dhcp /' /tmp/cmdline + if ! mount -n --bind -o ro /tmp/cmdline /proc/cmdline; then + die "Could not mount cmdline as rw." + fi +fi +unset _cmdline + +SLX_SERVER="$(getargs slxsrv=)" +SLX_SERVER_BASE="$(getargs slxbase=)" + +[ -z "$SLX_SERVER" ] && warn 'No "slxsrv" parameter found in the kernel command line.' +[ -z "$SLX_SERVER_BASE" ] && warn 'No "slxbase" parameter found in the kernel command line.' +#debug_off diff --git a/builder/hd-boot/hooks/prepare-root-part.sh b/builder/hd-boot/hooks/prepare-root-part.sh new file mode 100755 index 00000000..7963ffb3 --- /dev/null +++ b/builder/hd-boot/hooks/prepare-root-part.sh @@ -0,0 +1,201 @@ +# Copyright (c) 2013 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found under http://openslx.org +# +# Local hard disk autodetection script for OpenSLX linux stateless clients, +# detecting swap and special partitions +############################################################################# + +. "/usr/lib/rebash/core.sh" +. "/usr/lib/hd-boot/common-lib.sh" +core.import utils +core.import logging +logging.set_commands_log_level debug +logging.set_log_level debug + +LOOP_BACK=127.0.0.1 +BLOCK_DM="root" +SLX_CONFIG_FILE="config" + +debug_off() { + set +x +} + +debug_on() { + [ "$RD_DEBUG" = "yes" ] && set -x +} + +#debug_on +get_cached() +{ + local img=$1 rid=$2 + local succeeded count port buff + + succeeded=1 + count=0 + port=$(cat "${DNBD3_CONFIG_DIR}/server.conf" | awk -F'=' '/listenPort/ {print $2}') + while [ $succeeded -ne 0 -a $count -lt 15 ]; do + sleep 0.5 + buff=$(wget -O - "$LOOP_BACK:$port" 2> /dev/null) + succeeded=$? + ((count++)) + done + + echo "$buff" | jq --slurp '.[]? | .images | .[]?' | tr -d '"\n{ ' | tr '}' '\n' | \ + grep -w "name:$img" | grep -w "rid:$rid" | + awk -F',' '{ + for (i=1; i <= NF; i++) { + split($i, keyval, ":") + if( match(keyval[1], "complete") ) { + _completed=keyval[2] + } + if( match(keyval[1], "uplinkServer") ) + _uplink=keyval[2] + } + + print _completed" "_uplink + }' +} + +is_cache_completed() +{ + local img_status cache_completed uplinkserver + + img_status=$(get_cached\ + "${SLX_DNBD3_RELATIVE_PATH}/${SLX_DNBD3_IMAGE}"\ + "$SLX_DNBD3_RID") + + cache_completed=0 + uplinkserver="none" + if [ -n "$img_status" ]; then + cache_completed=$(echo "$img_status" | cut -d' ' -f1) + uplinkserver=$(echo "$img_status" | cut -d' ' -f2) + fi + + [ $cache_completed -ge 100 ] ||\ + [ "$uplinkserver" != "" -a "$uplinkserver" != "none" ] +} + +# Sanity check, this variable has been exported either +# by get_root_part.sh or partotioner.sh, since at this +# point we expect to have a partition. +[ -z "$ROOT_HDD_BWLEHRPOOL" ] &&\ + emergency_shell "Root partition could not be identify as '$ROOT_HDD_BWLEHRPOOL'." + +DIR_ROOT=$(get_root_dir) +[ ! -d "$DIR_ROOT" ] && ! mkdir -p -- "$DIR_ROOT" &&\ + die "Directory \"$DIR_ROOT\" does not exist." + +if ! mount -o rw "$ROOT_HDD_BWLEHRPOOL" "$DIR_ROOT"; then + die "Device \"$ROOT_HDD_BWLEHRPOOL\" could not be mounted at \"$DIR_ROOT\"." +fi + +# in /boot must be a backup of config +if [ -z "$SLX_DNBD3_RELATIVE_PATH" ]; then + [ ! -e "${DIR_ROOT}/boot/${SLX_CONFIG_FILE}" ] &&\ + emergency_shell "${DIR_ROOT}/boot/${SLX_CONFIG_FILE} could not be found." + . "${DIR_ROOT}/boot/${SLX_CONFIG_FILE}" +else + # update the config file we've got one from the server. + cp -a "${SLX_CONFIGURATION_LOCATION}/${SLX_CONFIG_FILE}"\ + "${DIR_ROOT}/boot/${SLX_CONFIG_FILE}" +fi + +info "Starting DNBD3 server at \"$LOOP_BACK\" settings at \"$DNBD3_CONFIG_DIR\"." +dnbd3-server -b "$LOOP_BACK" -c "$DNBD3_CONFIG_DIR" +# TODO: check for erros + +# sanity check, if we have empty directory em server +# reports no images, proxy will create for the first time. +cache_dir=$(get_cache_dir) +[ -n "$(find $cache_dir -type d -not -empty)" ]; cache_empty=$? +unset cache_dir + +# TODO: +# build a function to detect if we've got a connection +no_connection=1 +if [ $no_connection -eq 0 ] || ! is_cache_completed || [ $cache_empty -eq 1 ]; then + pquestion ".dialog_warnrc" "Continue?" "This computer has a incomplete cache, so It's"\ + "strong recommended that all work must be save to a persistent disk. The system is unreliable "\ + "while there is no connection to the server and the cache is not full filled, once the "\ + "the cache is complete the system is totally reliable. If you choose to not continue the "\ + "system will be rebooted.\n\nContinue?" + if [ $? -eq 1 ]; then # if no, reboot + echo b > /proc/sysrq-trigger + fi +fi + +# The server takes some time to be up so, try few times +# or succeeded, if fail, gives up. +succeeded=1 +count=0 +while [ $succeeded -ne 0 -a $count -lt 10 ]; do + info "$count: Connecting to server $LOOP_BACK, image: " \ + "${SLX_DNBD3_RELATIVE_PATH}/${SLX_DNBD3_IMAGE}..." + sleep 1 + dnbd3-client -c -d "$SLX_DNBD3_DEVICE" &> /dev/null + dnbd3-client -h "$LOOP_BACK" \ + -i "${SLX_DNBD3_RELATIVE_PATH}/${SLX_DNBD3_IMAGE}" \ + -r "$SLX_DNBD3_RID" -d "$SLX_DNBD3_DEVICE" + succeeded=$? + ((count++)) +done + +if [ $succeeded -ne 0 ]; then + emergency_shell -n "error" "dnbd3-client could not connect to the image " \ + "${SLX_DNBD3_RELATIVE_PATH}/${SLX_DNBD3_IMAGE}.r${SLX_DNBD3_RID} " \ + "on device $SLX_DNBD3_DEVICE" + +fi + +local img_fmt=$(qemu-img info "$SLX_DNBD3_DEVICE" | awk -F': ' '/file format:/ {print $2}') +read_only_device= +case "$img_fmt" in + qcow2) + read_only_device='/dev/nbd0' + systemd-preserve-process-marker \ + qemu-nbd --read-only --cache=writeback --connect="$read_only_device" "$SLX_DNBD3_DEVICE" + + # wait for partitions TODO make nicer :) + touch $read_only_device + udevadm settle + ;; + + raw) + modprobe -r loop + modprobe loop max_part=16 + read_only_device=$(losetup -f) + if ! losetup "$read_only_device" "$SLX_DNBD3_DEVICE"; then + emergency_shell -n "error" "losetup could set block device." + fi + ;; + + *) + emergency_shell -n "error" "Format of image not reconized." + ;; +esac + +read_only_device=$(utils.find_block_device "$SLX_SYSTEM_PARTITION_IDENTIFIER" "$read_only_device") +[ -z "$read_only_device" ] && \ + emergency_shell -n "error" "device=\"$read_only_device\", read only block dev could not be found." + +blk_dev_size=$(blockdev --getsz "$read_only_device") +# make union of block device, building a layer of cow. +if ! dmsetup create "$BLOCK_DM" --noudevsync --table \ + "0 $blk_dev_size snapshot $read_only_device /dev/ram0 N 1"; then + emergency_shell -n "error"\ + "dmsetup could not combine block device \"$read_only_device\" with /dev/ram0" +fi +dmsetup mknodes --noudevsync "$BLOCK_DM" + +export BLOCK_DM +export DIR_ROOT + +return 0 +#debug_off diff --git a/builder/hd-boot/module-setup.sh b/builder/hd-boot/module-setup.sh new file mode 100755 index 00000000..02956c01 --- /dev/null +++ b/builder/hd-boot/module-setup.sh @@ -0,0 +1,63 @@ +#!/bin/bash -x + +check() { + return 0 +} + +depends() { + echo dnbd3-rootfs +} + +install() { + + inst_simple "$moddir/server.conf" "/etc/dnbd3/server.conf" + inst_simple "$moddir/alt-servers" "/etc/dnbd3/alt-servers" + inst_simple "$moddir/.dialog_warnrc" "/usr/lib/hd-boot/.dialog_warnrc" + inst_script "$moddir/common-lib.sh" "/usr/lib/hd-boot/common-lib.sh" + #inst "$moddir/../dnbd3-rootfs/binaries/dnbd3/build/dnbd3-server" /usr/bin/dnbd3-server + #inst "$moddir/../dnbd3-rootfs/binaries/dnbd3/build/dnbd3-client" /usr/bin/dnbd3-client + + # cmdline hooks + #inst_hook cmdline 10 "$moddir/hooks/prepare-kernel-command-line-parameter.sh" + + # pre-mount hooks + inst_hook pre-mount 01 "$moddir/hooks/get_root_part.sh" + inst_hook pre-mount 02 "$moddir/hooks/partitioner.sh" + inst_hook pre-mount 03 "$moddir/hooks/prepare-root-part.sh" + + # mount hooks + #inst_hook mount 00 "$moddir/hooks/mount-root-device.sh" + + # pre-udev hooks + #inst_hook pre-udev 01 "$moddir/hooks/ifup_lo.sh" + inst_hook pre-udev 40 "$moddir/hooks/gen-netfiles.sh" # Must be 40, because dracut runs as 50 and 60 net-genrules.sh + + # install buid-in kernel parameters + for _i in "$moddir/etc/cmdline.d/"*.conf; do + inst "$_i" "/etc/cmdline.d/${_i##*/}" + done + + # set variables at beggining of dracut. + for _i in "$moddir/etc/conf.d/"*.conf; do + inst "$_i" "/etc/conf.d/${_i##*/}" + done + + # Install grub files + for _i in $(find "$moddir/grub/"); do + if [ -L "$_i" ]; then + inst_symlink "/${_i#*/grub/}" "${_i##*/}" + else + inst "$_i" "/${_i#*/grub/}" + fi + done + + # Debugging + inst_multiple sfdisk gdisk qemu-img sgdisk df netstat \ + file mktemp diff parted tr bc mkfs dialog \ + telnet tset reset xxd ip grub-mkconfig modinfo \ + curl jq chmod wc fgrep rmdir logger which paste + # Production + #inst_multiple sfdisk qemu-img sgdisk parted tr bc \ + # mkfs dialog ip jq wc fgrep rmdir logger \ + # which paste +} -- cgit v1.2.3-55-g7522