Ubuntu 17.10+ отключить нетплан
Согласно: https://wiki.ubuntu.com/Netplan
Я могу отключить netplan следующим образом: "preseeding netcfg/do_not_use_netplan=true (добавив его в командную строку при загрузке установочного носителя Ubuntu Server")
Я предполагаю, что это сделано через /etc/default/grub
но где именно я могу добавить "netcfg/do_not_use_netplan=true"?
Это добавлено к: GRUB_CMDLINE_LINUX
В настоящее время у меня есть этот набор:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
Какой будет синтаксис для добавления в "netcfg / do_not_use_netplan = true" к этому существующему параметру?
PS ДА, я хочу удалить netplan, поэтому вопрос конкретно о том, как это сделать, а не о том, почему.
5 ответов
Точный метод сделать это сложно, возможно, невозможно найти сейчас в первые дни нетплана.
В настоящее время у меня есть этот набор:
GRUB_CMDLINE_LINUX = "ipv6.disable = 1"
Я предполагаю, что вы имеете в виду, что ваш /etc/default/grub
читает, частично:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="ipv6.disable=1"
<snip>
Я также предполагаю, что ссылка, которую вы даете, предлагает добавить следующую формулировку:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="ipv6.disable=1 netcfg/do_not_use_netplan=true"
<snip>
Я предлагаю вам сделать это, а затем:
sudo update-grub
Вам также понадобится:
sudo apt install ifupdown
Возможно, он уже установлен.
Наконец, заполните /etc/network/interfaces
вручную настроить сеть так, как вы этого хотите.
Точный процесс, чтобы сделать эту постинсталляцию, насколько я и Google могу найти, не существует. Перезагрузка со скрещенными пальцами!
Эти указания также были протестированы для Ubuntu 18.04.1 и, скорее всего, будут работать и для любого будущего выпуска, использующего netplan
а также systemd
,
Нет необходимости возиться с GRUB или с ручным удалением файлов. Конфигурация настроена в /etc/networking
файлы и каталоги переживут перезагрузки.
Это проверенные шаги:
- Проверьте фактические имена интерфейсов, которые вас интересуют
ip l
для ссылок (или интерфейсов) и сip a
для адресов. - устанавливать
ifupdown
сsudo apt -y install ifupdown
, - чистка
netplan
сsudo apt -y purge netplan.io
, - конфигурировать
/etc/network/interfaces
и / или/etc/network/interfaces.d
в соответствии с вашими потребностями (man 5 interfaces
могут быть полезны с примерами). - Перезапустите
networking
обслуживание сsudo systemctl restart networking; systemctl status networking
или жеsudo /etc/init.d/networking restart; /etc/init.d/networking status
, Выход изstatus
команда должна упомянутьactive
как его статус. - Команда
ip a
покажет, была ли применена ожидаемая конфигурация сети. - При желании вручную удалите оставшиеся файлы конфигурации netplan с помощью
sudo rm -vfr /usr/share/netplan /etc/netplan
,
Для "обновления" конфигурации IP перезагрузка не требуется: она будет активной с шага № 5 . В случае возникновения проблем дважды проверьте имена интерфейсов. Типичная конфигурация IPv4 DHCP будет выглядеть так:
auto enp0s3
iface enp0s3 inet dhcp
в то время как статический адрес IPv4 может быть настроен так:
auto enp0s3
iface enp0s3 inet static
address 192.168.255.42/24
gateway 192.168.255.254
#dns-nameservers 8.8.8.8 208.67.222.222
Осторожно, dns-nameservers
запись не будет работать (спасибо @Velkan за указание на это!): распознаватель все еще использует /etc/resolv.conf
а также systemd
предоставляет свой собственный сервис разрешения от 127.0.0.53
, Таким образом, вы можете обновить его вручную (перезагрузка сети не требуется!):
nameserver 8.8.8.8
nameserver 208.67.222.222
Но его будет только временное решение исчезнуть после следующей перезагрузки.
Чтобы получить постоянное решение, вам нужно отредактировать /etc/systemd/resolved.conf
и добавьте такую строку в " [Resolve]
строфа:
DNS=8.8.8.8 208.67.222.222
Пожалуйста, обратитесь к man 5 resolved.conf
для полной документации.
Наконец, в маловероятном случае, если какая-либо сетевая служба не отвечает должным образом, эти службы могут нуждаться в перезапуске. Но это странное нестандартное поведение сетевого демона.
Была эта проблема на 64-битном сервере Ubuntu 18.10 (работающем в Virtual Box) и следующие шаги позволили удалить netplan и установить Network Manager - не уверен, работают ли они для ifupdown. Эти шаги адаптированы из ответа @Uqbar (спасибо).
- Проверьте фактические имена интерфейсов, которые вас интересуют
ip l
для ссылок (или интерфейсов) и сip a
для адресов. - Установите сетевой менеджер с помощью sudo
apt -y install network-manager
, - Очистить нетплан с
sudo apt -y purge netplan.io
, - При желании вручную удалите остатки файлов конфигурации netplan с помощью
sudo rm -vfr /usr/share/netplan /etc/netplan
, конфигурировать
/etc/network/interfaces
в соответствии с вашими потребностями (man 5 interfaces
могут быть полезны с примерами). Шахта настроена следующим образом:auto lo iface lo inet loopback auto enp0s3 allow-hotplug enp0s3 iface enp0s3 inet dhcp
В файле
/etc/NetworkManager/NetworkManager.conf
изменить строкуmanaged=false
вmanaged=true
, Это заставит Network Manager управлять интерфейсами, настроенными в/etc/network/interfaces
,- Перезапустите сервис Network Manager с помощью
sudo service network-manager restart
, Вывод команды status должен указывать active как ее статус. Команда
nmcli dev
покажет, была ли применена ожидаемая конфигурация сети. Изначально интерфейсenp0s3
(мой виртуальный Ethernet) выглядел как неуправляемый. После перезагрузки машина появилась как подключенная. Пример выводаnmcli
следующим образом:DEVICE TYPE STATE CONNECTION enp0s3 ethernet connected Ifupdown (enp0s3) wlxc46e1f179799 wifi disconnected -- lo loopback unmanaged --
ПРИМЕЧАНИЕ. У меня возникли проблемы с зависанием процессов, как описано здесь и здесь. Мне удалось изменить vm.dirty_ratio
и `vm.dirty_background_ratio до 10 и 5 соответственно, из значений по умолчанию 20 и 10. Для этого выполните следующие команды:
sudo sysctl -w vm.dirty_ratio=10
sudo sysctl -w vm.dirty_background_ratio=5
Я обновлю этот ответ, сообщив о результатах после запуска виртуальной машины в течение некоторого времени.
Вот МОЙ ответ о том, как ОТКЛЮЧИТЬ Netplan без его удаления (проверено для Ubuntu 20.04.2 LTS Server and Desktop):
Решение основано на моих собственных исследованиях. Я не знаю, является ли это официальным способом сделать это, хотя он очень похож на системный.
Netplan выполняется во время загрузки системы файлом генератора systemd
netplan
инисде
/usr/lib/systemd/system-generators/
. Это символическая ссылка, указывающая на
/usr/lib/netplan/generate
. Поэтому вам просто нужно удалить его, чтобы Netplan не запускался при загрузке:
ОТКЛЮЧИТЬ Сетевой план:
sudo rm /usr/lib/systemd/system-generators/netplan
Перезагрузите вашу систему, и у вас больше не будет никаких конфигураций, сгенерированных Netplan.
Остановите запуск Netplan, пока система работает:
sudo chmod a-x /usr/sbin/netplan
ВКЛЮЧИТЬ сетевой план:
sudo ln -s /usr/lib/netplan/generate /usr/lib/systemd/system-generators/netplan
Перезагрузите вашу систему, и Netplan будет выполняться во время загрузки системы и будет генерировать внутренние конфигурации внутри
/run/...
опять же, если yaml-файлы присутствуют в одном из каталогов конфигурации Netplan.
Снова сделайте Netplan исполняемым, пока система работает:
sudo chmod a+x /usr/sbin/netplan
Это все, что вам нужно сделать! Нет необходимости добавлять/удалять в ваш файл в дополнение к двум командам выше.
Фон:
До сих пор я не мог найти ничего полезного, что сделано
netcfg/do_not_use_netplan=True
. Я не могу и не могу сказать, что он может чего-то не делать, но я не мог воспроизвести, что он что-то делал (я ожидал, что он будет делать).
Я могу с уверенностью сказать, что это НЕ останавливает выполнение Netplan во время загрузки. Не отключая Netplan, как описано выше, добавьте
debug
на ваш
/etc/default/grub
чтобы это выглядело следующим образом,
GRUB_CMDLINE_LINUX="netcfg/do_not_use_netplan=True debug"
чтобы проверить себя.
После загрузки системы выполнить
dmesg | grep netplan
и вы получите что-то вроде следующего:
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-74-generic root=UUID=74a27c05-a0a8-4a7c-a757-5edda35a5933 ro debug netcfg/do_not_use_netplan=True debian-installer/language=de keyboard-configuration/layoutcode?=de
[ 0.037275] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-74-generic root=UUID=74a27c05-a0a8-4a7c-a757-5edda35a5933 ro debug netcfg/do_not_use_netplan=True debian-installer/language=de keyboard-configuration/layoutcode?=de
[ 3.086458] systemd[346]: /usr/lib/systemd/system-generators/netplan succeeded.
[ 3.397282] systemd[1]: unit_file_build_name_map: normal unit file: /run/systemd/system/netplan-ovs-cleanup.service
Как видите, командная строка читается правильно, но Netplan все еще выполняется.
Поэтому я подумал, что, поскольку он читает «do_not_use_netplan», он все равно может выполнять Netplan, но не будет использовать внутреннюю конфигурацию, если существует действительная конфигурация с ifupdown .
Но НЕТ, даже если установлен ifupdown и внутри размещена действующая конфигурация
/etc/network/interfaces
Netplan по-прежнему генерирует внутренние конфигурации и применяет их, а конфигурации из ifupdown по-прежнему игнорируются.
Только если я отключу Netplan, как описано в начале, конфигурация ifupdown будет использоваться и начнет работать, как ожидалось.
В дополнение к этому ответу подход действительно работает (18.04.4 LTS) для возврата к ifup/down и намного проще, чем некоторые другие предложения. Я перезагрузился, но не уверен, что это было необходимо.
Шаги:
ip a
(чтобы получить действительные имена устройств и IP-адреса, если требуется)
apt install ifupdown
vi /etc/network/interfaces
# если вы это делаете, вы знаете, что вставить
vi /etc/resolv.conf
# если вы это делаете, вы знаете, что вставить
apt purge netplan.io
init 6
# не уверен, нужно ли это
Избыточные файлы могут все еще присутствовать, но я решил их не искать