Я много играл и учился с Ubuntu Base, установщиком нового subiquity, PXE и т. Д. Но одна вещь не дает мне покоя - работа в сети.
Я могу заставить свои установки работать, но установка netplan.io
вытаскивает столько необходимых пакетов и требует еще большего, чтобы действительно работать.
Есть ли какой-нибудь «легальный» путь без этого? Я попытался использовать только iproute2
и сделать это вручную, но у меня ничего не вышло, и я был бы очень благодарен за любые идеи:
Только проверка, которую он действительно должен пройти после настройки, позволяет apt-get update
работать. Тогда я могу назвать это «полностью функциональным».
К сожалению, согласно моему опыту, называть функциональный минимум Ubuntu Base, из которого вы можете устанавливать все другие пакеты и систему сборки по своему усмотрению, на самом деле неверно, если вы этого не сделаете. есть работающая сеть.
Для получения дополнительной информации, моя текущая голая установка (без сети):
Это загружается в 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 и посмотреть, работает ли он по-прежнему.
Хорошо, тогда отвечаю на свой вопрос... Но, пожалуйста, если у кого-то есть еще лучший способ, опубликуйте свой вариант!
В любом случае, мне пришлось выполнить следующие подготовительные шаги (для Ubuntu Base как таковой):
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
, который может извлекать пакеты из официальных репозиториев.
Надеюсь, кто-нибудь заметит и обновит официальную вики.