Какой минимум для включения сети 20.10 / 20.04 (Base)

Я много играл и учился с Ubuntu Base, установщиком нового subiquity, PXE и ​​т. Д. Но одна вещь не дает мне покоя - работа в сети.

Я могу заставить свои установки работать, но установка netplan.io вытаскивает столько необходимых пакетов и требует еще большего, чтобы действительно работать.

Есть ли какой-нибудь «легальный» путь без этого? Я попытался использовать только iproute2 и сделать это вручную, но у меня ничего не вышло, и я был бы очень благодарен за любые идеи:

  • работа сети
  • dhcp или статика, либо приемлемо (меньше - лучше)
  • разрешается работать

Только проверка, которую он действительно должен пройти после настройки, позволяет apt-get update работать. Тогда я могу назвать это «полностью функциональным».

К сожалению, согласно моему опыту, называть функциональный минимум Ubuntu Base, из которого вы можете устанавливать все другие пакеты и систему сборки по своему усмотрению, на самом деле неверно, если вы этого не сделаете. есть работающая сеть.

Для получения дополнительной информации, моя текущая голая установка (без сети):

  • ubuntu-base-20.10-base-amd64.tar.gz
  • linux-image-5.8.0-28- общий
  • syslinux как загрузчик
  • удален man / docs
  • удален apt cache (пробовал то же самое с 20.04.1)

Это загружается в sh, и я могу запустить bash и сделать некоторые основы. apt есть, но не может подключиться (очевидно), поэтому я застрял с добавлением дополнительных пакетов.

Я знаю, что могу добавить к нему кучу пакетов, и в конечном итоге это сработает. Но я хотел бы получить минимум. На данный момент у меня 370 МБ. Даже при установке только зависимостей netplan.io + он достигает 470+ (увеличение ~ 30%) и все равно не работает. Переход на ubuntu-minimal работает, но это 800 МБ +

Я не совсем новичок, но я боролся со всеми изменениями netplan / iproute2, и мне очень хотелось бы его получить все работают "правильным" способом, как предусмотрено в 20.10 и 20.04

Спасибо!

Редактировать № 1: Как я только что написал в комментарии в качестве ответа (на комментарии, которые теперь исчезли), я получил его, установив несколько дополнительных пакетов во время развертывание:

apt-get install -y netplan.io dbus init iputils-ping isc-dhcp-client nano netbase ubuntu-advantage-tools sudo

Некоторые, которые я знаю, необязательны, но они мне нужны, пока я не устраню отдых. Я все еще пытаюсь найти, какие пакеты действительно нужны из этого списка (включая их зависимости):

netplan.io init

Похоже, установка netplan.io , dbus (рекомендуемая зависимость ] netplan ) и init работают, тогда я могу создать нормальный netplan .yaml и т. д., но это немного излишне просто для того, чтобы наладить сеть, поскольку я перехожу с 370 МБ до 480 МБ, чтобы получить их.

Редактировать №2: Текущий статус: я могу заставить его работать с установленным dhclient и некоторым минимумом других инструментов. Полный список установленных пакетов (помимо rootfs в Ubuntu Base):

chroot /mnt/root sh -c "apt-get install dbus init initramfs-tools iproute2 linux-image-5.8.0-28-generic sudo isc-dhcp-client --no-install-recommends"

Итак - нет netplan . Но я до сих пор не понимаю, почему я не могу запустить его с помощью только инструментов iproute , потому что, если я не установлю isc-dhcp-client , мое руководство Команды ip не работают.

Не работает:

ip addr add 10.10.2.101/24 brd + dev enp0s10f0
ip link set enp0s10f0 up
ip route add default via 10.10.2.99

Работает:

dhclient -v -w

Edit # 3: nevermind, systemd-resolved теперь установлен, и мой был перезаписан ] resolv.conf . Теперь я могу заставить его работать без DHCP. Теперь необходимо попробовать удалить пакет DHCP и посмотреть, работает ли он по-прежнему.

0
задан 4 December 2020 в 23:40

1 ответ

Хорошо, тогда отвечаю на свой вопрос... Но, пожалуйста, если у кого-то есть еще лучший способ, опубликуйте свой вариант!

В любом случае, мне пришлось выполнить следующие подготовительные шаги (для Ubuntu Base как таковой):

  • подготовить диск и разделы
  • untar ubuntu-base-20.10-base-amd64.tar.gz
  • откройте chroot и выполните в нем следующую команду
  • apt-get install -y linux-image-5.8.0-28-generic initramfs-tools init dbus iproute2 sudo nano openssh-server --no-install -рекомендует
  • находясь в chroot добавить пользователя и членство в группе с помощью useradd и addgroup
  • установить и настроить syslinux в качестве загрузчика
  • скопируйте vmlinuz и initrd.img туда, где их ожидает syslinux

Затем, чтобы иметь правильную конфигурацию сети после выхода из chroot и перезагрузки, добавьте следующее:

(echo [Соответствие]; echo Name=enp0s10f0; echo [Сеть]; echo Address=10.10.2.101/24; echo Gateway=10.10.2.99; echo DNS=8.8.8.8) > /mnt/root/etc/systemd /network/00-wired.network

And

systemctl enable systemd-networkd.service

Un монтирование, очистка (apt clean) и перезагрузка.

Этот процесс приводит к установке чуть менее 400 МБ и занимает около 10 минут (ограничено скоростью сети и моим медленным перегруженным хостом виртуализации).

После перезагрузки меня приветствует запрос на вход в систему, как и ожидалось, я могу войти с пользователем и паролем, которые я выбрал с помощью useradd, могу выполнить sudo, а затем могу выполнить apt- get update && apt-get upgrade -y и все пройдет без ошибок.

Я сделал еще один шаг, чтобы подтвердить, что никаких сюрпризов не последует, и установил xserver, openbox и chromium (из репозитория Debian), создал другого пользователя, попытался ssh подключиться к системе, проверить и изменить настройки. с ip, затем вы можете установить dhcp-client и изменить файл conf, чтобы разрешить DHCP и т. д., и все заработало. Я даже раздавил весь этот раздел рядом и загрузился с него, все заработало.

Теперь ЭТО можно назвать пригодной для использования системой. Но эти три строки, выделенные жирным шрифтом (apt install, 00-wired.network и enable systemd-networkd), совершенно необходимы и не упоминаются ни в одном из старых руководств и вики (неудивительно, что они датируются версией 6 и подобными).

Чтобы быть точным, в этих старых руководствах отсутствует следующее:

  • вам необходимо установить: init, dbus, iproute2 и sudo
  • ,которые будут использовать другие важные (отсутствующие) жесткие зависимости, такие как: systemd, systemd-sysv, udev
  • вам нужен хотя бы один рабочий конфиг в: /etc/systemd/network/*.network
  • вам нужно включить сервис: systemd-networkd. service

Опять же, я знаю, что руководства (сильно) устарели, но если вы не придумаете обходных путей, Ubuntu 20.10 на самом деле не будет Ubuntu 20.10 без systemd, и вы не можете использовать apt без sudo (если только вы не игнорируете официальные способы отключения root или похожий). Только после добавления этих нескольких элементов вы действительно почувствуете, что находитесь в минимальной и функциональной (и, кхм, текущей) установке Ubuntu, с systemd, работающей сетью и apt, который может извлекать пакеты из официальных репозиториев.

Надеюсь, кто-нибудь заметит и обновит официальную вики.

0
ответ дан 5 December 2020 в 23:04

Другие вопросы по тегам:

Похожие вопросы: