NixOS Установка и настройка системы

NixOS. Установка и настройка системы.

Всем привет! Сегодня хочу поговорить об установке и настройке дистрибутива NixOS с позиции обывателя. Несколько лет назад я уже пытался познакомиться с данным дистрибутивом, очень не похожим на всё, что я использовал до него. Более или менее это прошло удачно. Сейчас, посмотрев на неприятные изменения в пакетной базе Ubuntu 20.04, понял что надо искать какую то альтернативу на будущее, для использования в качестве основной системы (нет-нет, не надо мне предлагать Рач!). Вспомнил про NixOS и решил еще раз попытать счастье, так как опыта стало немного больше чем было тогда (хотя может и сомнительное высказывание). Нашел старый ноутбучный жесткий диск на 160гб, проработавший уже достаточно приличное время (точнее ему давно пора на покой), установил его в домашний компьютер и принялся за дело.

И так, что же собственно такое этот NixOS:

Декларативная конфигурация — это описание состояния системы в одном конфигурационном файле. Что мы опишем в файле конфигурации, то у нас и будет установлено. По моему мнению это замечательный подход к созданию операционной системы. Создав конфиг единожды, его можно просто переносить между системами и создавать полные клоны системы-источника. Ну и когда все собрано в одном файле, пользователю не нужно мотыляться по всей системе конфигурируя разные файлы. Так же в систему встроен откат до предыдущих конфигураций. Это очень удобно. Вся информация о настройках хранится в конфигурационном файле /etc/nixos/configuration.nix. Информация об установленном у вас железе хранится в /etc/nixos/hardware-configuration.nix.

Содержание статьи:

    (работа с пакетами — она немного отличается от того, что предлагают нам подавляющее кол-во дистрибутивов) (которые появились у автора данной статьи) (полезные ссылки)

Установщик пакетов.

NixOS использует пакетный менеджер NIX, у которого достаточно много возможностей (в которых мне еще предстоит разобраться). Все пакеты ставятся в один каталог /nix/store/папка_программы и не растаскиваются по всей системе. Здесь Вы можете поставить несколько версий одного и того же пакета, не боясь что то сломать — хвала строению файловой системы в NixOS! Сама установка установка пакетов достаточно проста. К примеру нам нужно установить текстовый редактор Pluma, который входит в окружение MATE. Для этого для начала узнаем как у NixOS называется этот пакет. Идем по ссылке:
https://search.nixos.org/packages
В поиске вводим pluma и выбираем версию ОС. Посковая система находит нам пакет mate.pluma, нажимаем на него и видим версию пакета, для каких систем он собран и подсказку для его установки:

Копируем в терминал и устанавливаем. Программа установится в папку /nix/store/qxis4j1sr9q34ypwkg1pp5xz7rngyhdz-pluma-1.22.2.
Для удаления используем следующую команду:

Эта команда по сути не удалит программу а отсоеденит ее от системы. Чтобы полностью удалить программу можно вырубить ее топором:

Но лучше запустить так называемый сборщик мусора:

Функционал пакетного менеджера очень богат, там есть и установка программ с Github и сборка пакетов из исходников и много чего еще. Программы можно устанавливать как от обычного пользователя, так и от root. В первом случае программа будет доступна только для текущего пользователя, во втором случае для всех пользователей. Приятный сюрприз, что пакетный менеджер NIX можно использовать даже в Ubuntu. Для этого в Ubuntu нужно выполнить:

Установочный скрипт создаст нужные ссылки и установит пакетный менеджер. После этого нужно перезагрузить систему и можно пользоваться. Единственное что немного непонятно при использовании его в Ubuntu, так это то, что установленные программы не отображаются в меню пользователя. Возможно понадобиться создать какие то симлинки, чтобы система их видела.

Скачивание и подготовка образа.

Для начала нам потребуется скачать образ системы с официального сайта и записать его на флешку. Образы пристутствуют двух видов: в виде Minimal ISO image и Graphical ISO image. Первый установщик для консольной установки, второй включает в себя окружение KDE для более удобного процесса. Пусть вас не пугает что он на KDE. По аналогии с Ubuntu я так же думал что я не хочу ставить систему с окружением KDE и потому всегда брал консольный установщик, что в принципе зря. После завершения установки системы у вас не будет в системе ни одного пакета от KDE, если конечно вы сами этого не захотите, а будет ровно то, что вы опишите в конфигурации. Советую брать установщик на KDE, так как в нем есть файл с полным мануалом по установке, правда на английском языке, а так же утилита Gparted, для более удобной разметки диска. Ну и немаловажно что можно подключиться к wi-fi и почитать ответы на какие либо вопросы в интернете. Далее переходим на страницу загрузки и качаем тот образ который вы выбрали:
https://nixos.org/download.html
После скачивания, записываем образ на флешку и загружаемся с нее.

Подготовка разделов.

Я буду описывать установку с использованием окружения KDE. Для консольной версии, вместо утилиты Gparted нужно будет использовать fdisk для создания разделов, mkfs.ext4 для их форматирования, mkswap и swapon для подключения файла подкачки.
Создадим разделы на жестком диске. Для этого открываем Gparted, удаляем существующие разделы на нашем жестком диске и создаем те разделы, которые вы обычно используете в ваших системах. Я сделал разбивку следующим образом:
/dev/sda1 30G primary ext4 /
/dev/sda2 4G swap
/dev/sda3 120G primary ext4 /home
Когда разделы размечены и отформатированы, здесь же в Gparted тыкнув правой кнопкой на раздел swap подключаем его.
Открываем терминал и монтируем разделы:

Если вы хотите чтобы раздел /home был у вас на отдельном разделе диска то для начала создаем папку:

И монтируем туда /home:

Пришло время сгенерировать начальные конфигурационные файлы, для этого выполняем:

Система, на основании вашей конфигурации сгенерирует два конфигурационных файла configuration.nix и hardware-configuration.nix и поместит их в папку /mnt/etc/nixos/. Можно было было бы на этом этапе приступить к установке, но если запустить nixos-install то система вывалит ошибку о том, что мы не указали куда нам нужно установить загрузчик. Так как нам все равно придется лезть в файл конфигурации то сразу и настроим всю систему.

Начальное конфигурирование.

И так, после генерации конфигов у нас в папке /mnt/etc/nixos/ лежат два файла configuration.nix и hardware-configuration.nix. hardware-configuration.nix нам пока не нужен, так как в нем описано наше железо. Приступим к редактированию второго файла, отвечающего за конфигурацию нашей системы configuration.nix:

В начале файла мы видим закомментировнные строки отвечающие за установку загрузчика:

Если вы так же как я используете загрузчик GRUB 2 и MBR, то раскомментируем следующие строки:

Если вы хотите использовать загрузчик system-boot на основе systemd то советую попробовать добавить эти строчки:

Другие варианты не пробовал, поэтому описывать их не буду. Возможно информация есть в официальном мануале, сслыку на который я приложу ниже.

Дальше в конфиге идет блок с настройками сетевых соединений, раскомментируем:

Как понял, включает поддержку wi-fi через wpa_supplicant, но при этом ругается на Network-Manager.
Кое где в конфигах видел что пользователи включают networkmanager, но после установки, в Gnome-Shell, у меня он и так включен и работает. Включение Network-Manager’а можно произвести так:

Включение L2TP (IPSec так и не завел):

Все остальное не трогал и приступил настройкам локалей:

Думаю затруднений возникнуть не должно.

Настройки временной зоны:

Дальше самое интересное, настройка софта, который будет установлен во время установки системы:

Просто перечисляете все программы которые хотите видеть после загрузки системы. Естественно нужно соотносить имена программ с тем, как они называются в репозиториях NixOS. Для этого опять же нужно сходить по ссылке https://search.nixos.org/packages и поискать названия пакетов или ввести в терминале:

Но есть одно небольшое НО! Если вы хотите включить возможность установки проприетарных пакетов, то вам нужно до этой секции добавить секцию с правилом, разрешающую их установку:

Теперь, в переменной environment.systemPackages можно перечислять проприетарные пакеты (skypeforlinux, viber и прочее).

Так же, чтобы разрешить установку проприетарных пакетов с помощью пакетного менеджера nix, после установки системы нужно добавить строку в файл

Читайте также:  Установка карт navitel для навигатора

Для некоторых программ возможно понадобиться включить сервис, например:

Дальше идут настройки SSH, включаем что нужно:

Файрвол, мне пока не нужен:

Если есть принтер, то советую включить поддержку CUPS:

Звук и аппаратная поддержка pulseaudio:

xserver и раскладка для него по умолчанию:

Настройка окружения и менеджера входа:

Доступные окружения можете посмотреть тут:

Если хотите то можете использовать как менеджер входа lightdm или sddm, а вместо gnome3 к примеру lxqt, plasma5 или xfce.

Настройки пользователя. По умолчанию они другие, но я все таки посоветую использовать такую конструкцию:

После установки системы, проверьте пароль пользователя root, возможно нужно будет установить его через passwd.

Ну и последнее это установленная текущая версия и проверка обновлений для нее:

Можно так же включить автоообновление системы:

От себя хочу добавить:

Включение службы питания:

Это как понимаю задание переменных окружения:

Монтирование /tmp в tmpfs при загрузке системы:

Установка системы.

Ну если все настроили и уверены в правильности то можно проверить текущий конфиг на ошибки:

Приступаем к установке системы:

Ставится довольно долго, особенно если включили в установку проприетарные пакеты. После установки система занимает порядка 6-7гб на жестком диске. Если все хорошо система напишет:

Перезагружаемся и пользуемся!

Модульность.

NixOS — модульная система.

Список всех доступных в системе модулей можно посмотреть так:

Существующие на данный момент проблемы, пока не решенные мной:

— Не работает IPSec;

— При установке nomachine-client не хватает каких то зависимостей;

— Не запускаются бинарные пакеты, ни из окружения, ни из терминала (как мне подсказали возможно раздел смонтирован как noexec. Fstab здесь автогенерируется, потому, что то править в нем смысла нет);

— Непонятки с переменными окружения. (.bashrc пользователя пуст);

— После удаления приложения через nix-env —uninstall и запуска nix-collect-garbage -d приложения порой все так же остаются в работе. Тестировал на удалении Pitivi, входящего в пакет окружения Gnome3. Есть вероятность что так происходит потому, что все окружение ставится как один сервис services.xserver.desktopManager.gnome3.enable = true;

Вывод.

По личным ощущениям хочу сказать так — это единственная система, которая не подтормаживает у меня на домашнем компе. И дело вовсе не в железе. Я пробовал кучу окружений и дистрибутивов, переставлял различные версии драйверов Nvidia, но даже самые легкие окружения, типа IceWM и openbox выдавали мне по 17-20 фпс, при этом совсем не нагружая проц, память и видеокарту. В NixOS для теста поставил gnome3 — так бысто он у меня нигде и никогда не работал. Даже KDE с лайв сиди самого NixOS ведет себя очень плавно. Это подтверждают и другие пользователи.

Буду рад если кому то помог. Статья будет мной дополняться, по мере изучения системы. Всем удачи в экспериментах!

Источник

Как пользоваться NixOS’ом?

Поставил себе NixOS на ноутбуке, загружается, KDE показывает, но работать совершенно невозможно.

Как ставил: залил образ установочного DVD на флешку, дальше по инструкции, nixos-generate-config —root /mnt. В конфигурационном файле только раскомментировал установку GRUB2, запуск OpenSSH и KDE4, создание непривилегированного пользователя.

Проблемы такие: этот самый непривилегированный пользователь не прописан в sudoers. А если я переключаюсь Ctrl+Alt+F1 в консоль, вхожу root’ом и прописываю его, то после перезагрузки восстанавливается файл без моего пользователя. Как его туда правильно вписать раз и навсегда?

В KDE нет (не установлен?) кнопочки/менюшечки/апплетика для настройки сети, работы с Network Manager. В LiveDVD такой был, в правом нижнем углу, я мог подцепиться к своей домашней вайфайке, а в установленной ОС нет. Как это исправить?

Как в NixOS’е ставить ПО? Кто такие channels (это аналоги репозитериев?), какие channels подключены по умолчанию? Насколько я понял есть 3 способа ставить ПО: прописать в configuration.nix, запустить nix-env -i от root’а и запустить nix-env -i от пользователя (ведь была же заявлена возможность ставить ПО для каждого пользователя в отдельности). Мне пока никаким образом не удалось поставить тот nm-applet в KDE который помог бы настроить WiFi, да и вообще любую программу. Поиск названия пакета с помощью

выдаёт названия в духе nixos.pkgs.kde4.networkmanagement, но запуск

выдаёт ошибку, что-то там про derivations. Так как же находить пакеты и ставить их?

Таки что с файлом sudoers и восстановлением файлов при перезагрузке? Что восстанавливается при каждой перезагрузке, а что остаётся?

В configuration.nix у меня не прописана установка KDE, но прописаны строчки для запуска kdm, почему KDE установлена, где это прописано? Как посмотреть какое ПО установлено, а точнее какое ПО затребовано, а какое поставлено по зависимостям? В Gentoo есть файлы system и world. В первом пакеты которые необходимы для функционирования базовой системы и portage, во втором пакеты запрошенные ползователем. Всё установленное ПО либо затребовано прямо, либо вытянуто по зависимостям. На 20 пакетов в world у меня было около тысячи пакетов в системе. Где такое посмотреть в NixOS?

Как пользоваться NixOS’ом?

1. Поставить NixOS.
2. Подумать «что за фигню я только что сделал?»
3. Накатить Дебиан 8.
4. Пользоваться.

Никак не пользоваться.

Про derivations

Нагуглил сообщение об ошибке.

линукснеготовдлядекстопа

Сколько нужно пятизвёздочных L.o.r.’овцев чтобы поставить пакет?

Разум, отзовись

cast />zloelamo
cast />redbaron

Кажется в NixOS только вы двое разбираетесь.

Чтобы пользоваться дистрибутивом нужно освоить документацию.
Если документация такова, что после ее освоения пользоваться дистрибутивом все еще неясно как, таким дистрибутивом пользоваться не нужно.

Я не пользуюсь установленным nix. Для меня это удобный пакетный менеджер. Чтот типа бзднутого pkgsrc.

Относительно sudoers. Смотри основной конфиг /etc/nixos/configuration.nix Там будет ссылочка, или непосредственное описание sudoers.

В целом nix это не обычный дистр, а конструктор, не такой как gentoo, который расчитан на ad-hoc управление. В никсе так тоже можно, но лишь местами. Предполагается, что ты описываешь в конфиге всю систему которую хочешь получить и по этому конфигу собираешь систему. То есть это такое большой темлатор дистриба. Я так полагаю это удобно, если ты хочешь создать 200 инсталяции вебсервера, но я этим не занимаюсь, поэтому хз.

Зато его можно использовать для быстрого создания нужной тебе среды на твоей машине. Надо тебе быстренько собрать python стек с некоторыми либами: подготовил конфиг и вперед.

Re: линукснеготовдлядекстопа

нисколько — особенно, если пакет ставить никому не нужно.

Прямо захотелось решить этот ребус! Неужели там так все жестко?

Ребус

Прямо захотелось решить этот ребус! Неужели там так все жестко?

Полагаю, что не так там всё жёстко, просто подход другой. Это как ломка при переходе с ШINDOШS на Ubuntu. Разберусь — расскажу.

Ноутбук, KDE, загрузка, установка ПО, работа. экая дурнопахнущая куча баззвордов! Да всё это ненужно.

Ты не понимаешь, NixOS не предназначен для такого «пользования». Он работает по-другому.

Объясните

Ты не понимаешь, NixOS не предназначен для такого «пользования». Он работает по-другому.

А для какого предназначен? Как по-другому он работает? Я вот хочу получить безопасную установку ПО, «однажды заработало — заработает всегда», откаты конфигурации. Разве этого всего NixOS не даёт? Почему мне нужно не хотеть этого всего на ноутбуке?

Крепкий орешек

NixOS пока остаётся крепким орешком, но я не сдаюсь.

Зато его можно использовать для быстрого создания нужной тебе среды на твоей машине. Надо тебе быстренько собрать python стек с некоторыми либами: подготовил конфиг и вперед.

Звучит как докер.

Не Docker

Звучит, может, и похоже, но работает принципиально по другому, другим путём идёт к цели. И путь Nix’а мне кажется более правильным. Насколько я понимаю docker это нечто среднее между chroot’ом и виртуальной машиной. Упаковка программы в контейнер docker’а сродни подготовке вендового setup.exe, в котором программа будет тащить все свои библиотеки с собой. Так достигается работа приложения в любой среде, хотя на самом деле среда просто таскается вместе с программой. Nix делает иначе, Nix гарантирует, что библиотеки которые тянутся по зависимостям с программой это именно те самые библиотеки, байт-в-байт, с которыми писался nixpkg. Но достоинства Nix’а на этом далеко не заканчиваются.

Читайте также:  Алмазная бурильная установка Diam CSN 254A

Начинаю

Wo-wo-wo, я только начинаю. В этих ваших убунтах непривилегированный пользователь создаваемый при установке добавляется в sudoers, а вход root’ом осуждается. NixOS в этом плане отстаёт. Вечером поправлю, включу своего пользователя в wheel и networkmanager, посмотрим что из этого выйдет.

Поставил себе NixOS на ноутбуке, загружается, KDE показывает, но работать совершенно невозможно.

«Буратино, ты сам себе враг!» (с)

Слушай, просто почитай мануал, там и про юзеров и про networkmnager и про каналы и про kde

Кому верить?

Слушай, просто почитай мануал, там и про юзеров и про networkmnager и про каналы и про kde

А где там про KDE?

И таки про Network Manager. Вот 2 ссылки:

Кому верить? Первое у меня вчера не заработало (кажися).

networking.networkmanager.enable = true; правильно http://nixos.org/nixos/options.html — вот полный список настроек. Про kde есть немного в главе про x11

Орешек затрещал

Итак, сегодня удалось подключиться к WiFi’ке из KDE (запустил Network Manager и добавил себя в группу), работать через sudo (добавил себя в группу), поставить и запустить SliM и stumpwm. В консоли и в X клавиатура вроде бы переключается на русский язык, но буквы не отображаются. Сейчас стоят такие проблемы:

  • Настроить отображение кириллицы в консоли. Как?
  • Настроить переключение раскладок в консоли CapsLock’ом. Как? Сейчас стоит Ctrl+Shift, кажется.
  • Поставить хоть какие-нибудь шрифты с кириллицей в X. Как?
  • Научиться подключаться к WiFi без KDE из stumpwm/консоли. nmcli?
  • Разобраться с хранением файлов пользователя. Сейчас HOME очищается.

Re: Не Docker

Docker тоже гарантирует. Просто мне кажется, что накактить и настроить debian куда быстрее. А для поднятия специфичных env для разработки docker в самый раз.
Хотя, кончено, у тих двух продуктов разные задачи и сравнивать их нельзя, но в срезе dev + env, ИМХО, проще mainstream дистр + контейнеры, виртуализация, etc.

Тоже поставил NixOS на виртуалку. Как я понял для кириллицы в консоли нужно сменить шрифт в configuration.nix.

брось каку, это еретический дистр

Re: Орешек затрещал

Мне кажется ты не верным путем идешь, почитай раздел Security.

Орешек полежал

На выходных не было возможности потыкать палочкой в NixOS, поэтому орешек просто полежал.

Мне кажется ты не верным путем идешь, почитай раздел Security.

Нипаня-ятна. Там говорится о том что NixOS можно запустить в одном из двух режимов. В первом только root может ставить пакеты, во втором любой пользователь. Но таки непонятно чем отличается установка через configuration.nix и nix-env -i.

Тоже поставил NixOS на виртуалку. Как я понял для кириллицы в консоли нужно сменить шрифт в configuration.nix.

Это так, но я что-то не осилил в установке terminus-font и соответствующую опцию i18n@configuration.nix. Кроме того я что-то не так делают с установкой ПО. Почему-то nix-env -i terminus-font работает, а в configuration.nix надо писать terminusfont. То же самое с network-manager. Сейчас залез на nixos.org/packages, нашёл network-manager. Почему-то Package name «network-manager-0.9.8.10», но при этом Attribute name «networkmanager». Что это такое, и почему nix-env -i нужно указывать одно, а в configuration.nix другое, или там вообще стоило бы указывать nixos.pkgs.networkmanager.

И как сменить сочетание клавиш для смены раскладки в консоли непонятно. Есть ли такая опция в configuration.nix.

Вообще, мне не нравится эта идея собрать все конфиги в одном файле. Я думал вся суть NixOS в использовании Nix’а, который занимается только установкой ПО, а настраивать приходится каждый пакет по отдельности теми средствами которые он предполагает, собственными конфигами. А сейчас мы имеем configuration.nix, в котором, вероятно, далеко не все возможные опции представлены. Возможно я ещё не проникся гениальностью идеи, но пока так.

И всё ещё неясно где пользователь мог бы хранить свои фоточки и песенки, если при каждой загрузке HOME очищается.

Я сам толком, не разобрался. но как я понял, смысл NixOS в том что он старательно защищает себя от изменений конфигурации а при неудачном изменении чего либо позволяет быстро восстановиться в исходное состояние.

То, что ты считаешь багом (отсутствие networkmanager-а, стирание /home и невозможность установить пакеты) на самом деле фишка. Для того чтобы ты мог пользователем все это использовать необходимо перевести NixOS в многопользовательский режим, в разделе Security об этом написано.

А ты пытаешься идти вдоль и все ломать.

RTFM не помогает

То, что ты считаешь багом (отсутствие networkmanager-а, стирание /home и невозможность установить пакеты) на самом деле фишка. Для того чтобы ты мог пользователем все это использовать необходимо перевести NixOS в многопользовательский режим, в разделе Security об этом написано.

Мы разные разделы Security читаем? Можете точнее указать где об этом написано?

Прочитай весь раздел 6.2. Multi-User Mode до конца, а не только первый абзац и про nix-daemon почитай.

Нипаня-ятна

Прочитай весь раздел 6.2. Multi-User Mode до конца, а не только первый абзац и про nix-daemon почитай.

Всё равно непонятно как это связано с содержимым HOME. Я совсем слепой, или там действительно речь идёт только про установку пакетов?

Как ты думаешь, каким образом NixOS делает всю эту хрень которая тебя напрягает? Ведь обычный Linux так себя не ведет, правильно?

Всё непонятнее и непонятнее

Как ты думаешь, каким образом NixOS делает всю эту хрень которая тебя напрягает?

Не знаю каким образом, поясните.

Ведь обычный Linux так себя не ведет, правильно?

Ubuntu/Slackware/Fedora действительно себя так не ведут. dpkg и rpm вообще в /home/* никогда ничего не пишут, могут в /etc/skel написать. А тут что-то другое.

Не знаю, что там внутрЯх NixOS, но заявленный функционал должен как то работать. Как я понял там запускается хитроумный демон, который протоколирует все действия и контролирует доступы. Чтобы пользователь мог что то сделать в системе, он должен сообщать о своих действиях демону. Все действия которые не зарегистрированы демоном, должны быть сброшены после перезагрузки, плюс на основе этих протоколов происходит восстановление в предыдущие состояния.

Пишу из негорящего танка

Не знаю как так получилось, но я дал NixOS’у передышку, поставил ещё раз, теперь HOME моего пользователя не затирает при перезагрузке. nixos-rebuild switch ещё не пробовал. WiFi работает, настроил через nmcli. Ещё поставил SLiM с autologin’ом, stumpwm (не настроил совсем) и Firefox (тоже пока не настроен). В общем можно осваивать дальше. Почему раньше NixOS вёл себя по-другому понять не могу.

Короче, NixOS работает. Работает настолько хорошо насколько я его настрою. К пользователю недружелюбен, это не Ubuntu, где после установки не надо настраивать кириллицу в консоли, но всякие фишки Nix’а очень прельстительны.

Кириллица в консоли

Ну, и как же поправить отображение кириллицы в консоли? Поставил себе NixOS, все классно, но, блин, эти мелкие моменты, которые должны быть уже давным-давно прописаны в вики, просто бесят. В целом, пока доволен.

Я уже на танке

Ну, и как же поправить отображение кириллицы в консоли? Поставил себе NixOS, все классно, но, блин, эти мелкие моменты, которые должны быть уже давным-давно прописаны в вики, просто бесят. В целом, пока доволен.

А я уже пересел на Guix, этот танк горит гораздо сильнее NixOS’а, но в будущем, полагаю, перестанет так полыхать, отрастит крылья и взлетит, потому что использует не свой миллионпервый новый язык, а Guile, который реализация Scheme, которая есть диалект Lisp’а.

Источник



NixOS Installation Guide

This guide is a companion guide for the official manual. In addition to describing the steps from the official manual, it provides known good instructions for common use cases. When there is a discrepancy between the manual and this guide, the supported case is the one described in the manual.

Читайте также:  Правила машиниста автокрана при подъеме груза

Use this guide as a step-by-step guide, choices will be presented, use only the selected section, and continue at the section it tells you to at the end.

Contents

Installation target

NixOS can be installed on an increasing variety of hardware:

  • regular (Intel or AMD) desktop computers, laptops or physically accessible servers, covered on this page
  • SBCs (like the Raspberry Pis) and other ARM boards, see NixOS on ARM
  • cloud and remote servers, see NixOS friendly hosters

Installation method

NixOS, as with most Linux-based operating systems, can be installed in different ways.

  1. The classic way, booting from the installation media. (Described below.)
  2. Booting the media from an existing Linux installation

Making the installation media

Since NixOS 14.11 the installer ISO is hybrid. This means it is bootable on both CD and USB drives. It also boots on EFI systems, like most modern motherboards and apple systems. The following instructions will assume the standard way of copying the image to a USB drive. When using a CD or DVD, the usual methods to burn to disk should work with the iso.

«Burning» to USB drive

First, download a NixOS ISO image or create a custom ISO. Then plug in a USB stick large enough to accommodate the image. Then follow the platform instructions:

From Linux

  1. Find the right device with lsblk or fdisk -l . Replace /dev/sdX with the proper device in the following steps.
  2. Burn with: cp nixos-xxx.iso /dev/sdX

Writing the disk image with dd also works.

From macOS

  1. Find the right device with diskutil list , let’s say diskX .
  2. Unmount with diskutil unmountDisk diskX .
  3. Burn with: sudo dd if=path_to_nixos.iso of=/dev/diskX

From Windows

  1. Download USBwriter.
  2. Start USBwriter.
  3. Choose the downloaded ISO as ‘Source’
  4. Choose the USB drive as ‘Target’
  5. Click ‘Write’
  6. When USBwriter has finished writing, safely unplug the USB drive.

Alternative installation media instructions

The previous methods are the supported methods of making the USB installation media.

Those methods are also documented, they can allow using the USB drive to boot multiple distributions. This is not supported, your mileage may vary.

Booting the installation media

Since the installation media is hybrid, it will boot both in legacy bios mode and UEFI mode.

Whatever mode is used to boot the installation media, your motherboard or computer’s configuration may need to be changed to allow booting from a Optical Disk Drive (for CD/DVD) or an external USB drive.

Legacy bios boot

This is the only boot possible on machines lacking EFI/UEFI.

UEFI boot

The EFI bootloader of the installation media is not signed and is not using a signed shim to boot. This means that Secure Boot will need to be disabled to boot.

Connecting to the internet

The installation will definitely need a working internet connection. It is possible to install without one, but the available set of packages is limited.

Wired

For network interfaces supported by the kernel, DHCP resolution should already have happened once the shell is available.

Tethered (Internet Sharing)

If you can not connect to the internet via cable or wifi, you may use smartphone’s tethering capability to share internet. Depending on your smartphones capabilities, only stock kernel drivers may be required which can help providing a working network connection.

Wireless

Network Manager is installed on the graphical ISO, meaning that it is possible to use nmtui on the command line to connect to a network.

Источник

Установка NixOS и настройка бондов

В рамках сегодняшней статьи, мы рассмотрим настройку BOND’ов на свежеустановленной NixOS.
Т.к. в рамках нашего дата центра, вышеупомянутая операционная система используется редко (в основном клиентами), в рамках данной короткой статьи, мы разберём случай, когда на свежеприбывший пустой сервер необходимо поставить NixOS и настроить BOND для redundancy сетевого соединения.

Вводные данные

  • Сервер HPE DL360 Gen9
  • Два диска по 240GB для операционной системы.
  • Одну 10 Гбит сетевую плату с двумя портами.

Предыстория

Для начала, что из себя представляет NixOS?

Мы все привыкли к тому, что каждый раз, когда устанавливаешь операционную систему — она будет точно в таком же состоянии, как и в десятках других инсталляций, на аналогичном оборудовании.

Многим системным администраторам, а также DevOps’ам, обслуживающим NixOS нравится архитектурная особенность, которая выделяет её среди других Unix’о подобных операционных систем: операционная система NixOS позволяет различным релизным версиям приложений и сервисов работать в рамках одной сессии операционной системы, что делает возможным использование других приложений, которые жёстко привязаны к какой-то конкретной версии того или иного сервиса, и при этом не создавать конфликты на уровне использования программных пакетов.

Установка

Требования

Теперь переходим к установке NixOS на пустой сервер.

Важно то, что при установке NixOS нам потребуется доступ в Интернет, поэтому в рамках данной статьи мы будем получать интернет-соединение через DHCP сервер нашего маршрутизатора.

Настройка сервера

В рамках нашей задачи, нам необходимо настроить сервер в UEFI режим загрузки.

На серверах HPE, нужно нажать клавишу F9, и тогда мы войдём в меню System Utilities. Далее нам надо войти System Configuration -> BIOS/Platform Configuration -> Boot options, и далее выбираем в выпадающем списке Boot mode UEFI mode, вместо Legacy mode.

Меню System Utilities

После этого нам обязательно надо перезагрузить сервер, чтобы наши изменённые настройки вступили в силу.

Кончено, еще вам рекомендуется сделать RAID массив из дисков перед установкой NixOS, чтобы вышедший диск не сказался на работоспособности системы и утраты важных, для вас, файлов. Как создавать RAID массив из имеющихся у нас дисков, в рамках данной статьи мы описывать не будем.
У серверов HPE имеется удалённая консоль iLO, через которую мы можем замонтировать в виртуальный CD-ROM ISO образ нашей NixOS, после чего, во время загрузки сервера, после нажатия F11 (для того, чтобы попасть в One-Time Boot Menu) мы сможем выбрать iLO Virtual USB с нашим замонтированным виртуальным ISO образом.

Boot Menu

Выбираем наш NixOS Installer и начнётся загрузка нашей ОС.

Предустановка NixOS

Перед тем как мы начнём, давайте выполним команду, по включению доступа к серверу через SSH, так будет удобней. Но мы не сможем зайти без пароля, создадим его для пользователя root:

Теперь давайте проверим, что NixOS видит диски, на которые мы будем устанавливать ОС, командой

Вывод команды lsblk

Для нашего примера, мы будем использовать диск sda.
Теперь вводим команды:

Но, перед тем, как мы начнём установкуNixOS и сделаем рестарт, мы добавим в файл /mnt/etc/nixos/configuration.nix несколько строчек:

И да, данный файл, будет использоваться и дальше, так как он — основа NixOS, и по нему система приходит в то состояние, которое вы задали для неё.

Установка NixOS

Всё, теперь можно вводить команду на установку ОС:

Инсталлятор предупреждает, что у нас неправильная опция, поэтому NixOS сам исправляет данную неточность.

NixOS во время установки будет скачивать нужные ему файлы, а так же, нас попросят создать пароль для пользователя root.

Перезагружаем сервер командой reboot.

Давайте создадим новую конфигурацию, так как если мы будем откатываться назад, то у нас не получится из-за того, что не будет прошлой точки отката:

Теперь переходим к настройке BOND’ов на свежеустановленном NixOS. Заходим в конфигурационный файл /etc/nixos/configuration.nix и вставляем в удобное место:

Для тестирования сети будем использовать команду nixos-rebuild test
Если окажется, что ошибок не обнаружено, то вводим nixos-rebuild switch.

Но как быть если наша конфигурация даёт сбой?
Мы просто делаем откат системы, командой nixos-rebuild switch —rollback

Источник

Adblock
detector