Инструкция по установке x86_64 системы на компьютер с 32х-битным UEFI. Вдруг кому пригодится. Пишу с самой машины.
- грузимся с i686 NIXOS_ISO, ставим минимальную систему (по сути, достаточно только GRUB2 на EFI-разделе).
- грузимся x86_64 NIXOS_ISO из свежеустановленного GRUB2 через командную строку (
c
->cat (hd0)/isolinux/isolinux.cfg
-> читаем ENTRY NIXOS DEFAULT, берем оттуда kernel cmdline (придется печатать вручную) ->linux (hd0)/boot/bzImage *наш cmdline из isolinux.cfg* intel_idle.max_cstate=1
(cstate - чтобы Atom не вис через некоторое время после загрузки) ->initrd (hd0)/boot/initrd
->boot
) ставим систему как обычно, только добавляем в конфигnixpkgs.config.packageOverrides = pkgs: { grub2 = (import <nixpkgs> {system = "i686-linux";}).grub2; }
- Перезагружаемся в рабочую систему и пишем инструкции на ЛОР!
Примечания:
- systemd-boot, который по умолчанию грузит nixos liveCD, не умеет загружать ядра чужой архитектуры, поэтому нельзя просто впилить 32хбитный загрузчик в NIXOS_ISO.
- GRUB в NIXOS_ISO у меня впилить не получилось
pkgs.i686Linux
почему-то вызывает бесконечную рекурсию в packageOverrides, поэтому пользуемся такими костылями.