пятница, 25 февраля 2011 г.

Grub2 for FreeBSD with zfs+gpt && Ubuntu 10.10

Так случилось что каждую пятницу мы собираемся играть на работе в Counter Ctrike 1.6. На ноуте я держу FreeBSD Head amd64, но CS на моём Samsung R428-DA02 c Intel GMA 4500M под wine даёт 3fps'a...(если вы умеете стрелять с таким fps'om обязательно научите меня!). Для игры была поставлена ubuntu 10.10, но портовый grub2 не умеет zfs. Сборка grub2 1.99-rc1 под bsd была не очень удачна(надеюсь всё таки соберу позже [собрал на следующий день ;)]). Чтобы всё заработало мне понадобилась загрузочная флешка с ubuntu.
При установке убунты не стал ставить её загрузчик не пятница же :), поэтому:
загружаюсь с флешки и ставлю grub
так как у меня p1 freebsd-boot превращаем его в bios_grub:
# parted /dev/sda set 1 bios_grub on
Получил примерно такое:
############ubuntu parted#############
Число Начало  Конец    Размер     Файловая система  Имя     Флаги
1          17,4kB   82,9kB   65,5kB                                        bios_grub
2          82,9kB   1074MB 1074MB                              swap0
3          1074MB 108GB   107GB                                 zfs0
4          108GB   118GB    9999MB    ext4
5          118GB   119GB    512MB      linux-swap(v1)
6          119GB   250GB    131GB      btrfs
#############freebsd gpart#############
=>            34  488397101     ad4  GPT  (233G)
                 34        128           1  !21686148-6449-6e6f-744e-656564454649  (64K)
               162    2097152         2  freebsd-swap  (1.0G)
        2097314  209715200        3  freebsd-zfs  (100G)
     211812514       1886                - free -  (943K)
     211814400   19529728         4  linux-data  (9.3G)
     231344128     999424          5  linux-swap  (488M)
     232343552  256053248        6  linux-data  (122G)
     488396800        335                 - free -  (168K)
ну и установил
# mount /dev/sda4 /mnt
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
# chroot /mnt
# grub-install /dev/sda
после успеха я перезагрузился, так как в ubuntu 10.10 тоже grub 1.98 обновляем до 1.99-rc1(после обновления попал... ещё раз восстановил загрузчик), ну и после добавляем в конец /etc/grub.d/40_custom
menuentry "FreeBSD" {
          insmod zfs
          search -s -l z
          kfreebsd /@/boot/kernel/kernel
          kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
          kfreebsd_module_elf /@/boot/kernel/zfs.ko
          kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
          set kFreeBSD.vfs.root.mountfrom=zfs:z
}
где z название пула
# update-grub2 
получил какой никакой gpt(FreeBSD HEAD zfs + Ubuntu + grub)

1 комментарий:

  1. Крутяк!
    И чо, работает?
    А с флешки покатит?
    Как сделать также, но с UFS?
    Как сделать так чтобы грузить разные ZFS-pool'ы с разных GPT-разделов?

    ОтветитьУдалить