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 файлы и каталоги переживут перезагрузки.

Это проверенные шаги:

  1. Проверьте фактические имена интерфейсов, которые вас интересуют ip l для ссылок (или интерфейсов) и с ip a для адресов.
  2. устанавливать ifupdown с sudo apt -y install ifupdown,
  3. чистка netplan с sudo apt -y purge netplan.io,
  4. конфигурировать /etc/network/interfaces и / или /etc/network/interfaces.d в соответствии с вашими потребностями (man 5 interfaces могут быть полезны с примерами).
  5. Перезапустите networking обслуживание с sudo systemctl restart networking; systemctl status networking или же sudo /etc/init.d/networking restart; /etc/init.d/networking status, Выход из status команда должна упомянуть active как его статус.
  6. Команда ip a покажет, была ли применена ожидаемая конфигурация сети.
  7. При желании вручную удалите оставшиеся файлы конфигурации 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 (спасибо).

  1. Проверьте фактические имена интерфейсов, которые вас интересуют ip l для ссылок (или интерфейсов) и с ip a для адресов.
  2. Установите сетевой менеджер с помощью sudo apt -y install network-manager,
  3. Очистить нетплан с sudo apt -y purge netplan.io,
  4. При желании вручную удалите остатки файлов конфигурации netplan с помощью sudo rm -vfr /usr/share/netplan /etc/netplan,
  5. конфигурировать /etc/network/interfaces в соответствии с вашими потребностями (man 5 interfaces могут быть полезны с примерами). Шахта настроена следующим образом:

    auto lo
    iface lo inet loopback
    
    auto enp0s3
    allow-hotplug enp0s3
    iface enp0s3 inet dhcp
    
  6. В файле /etc/NetworkManager/NetworkManager.confизменить строку managed=false в managed=true, Это заставит Network Manager управлять интерфейсами, настроенными в /etc/network/interfaces,

  7. Перезапустите сервис Network Manager с помощью sudo service network-manager restart, Вывод команды status должен указывать active как ее статус.
  8. Команда 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/interfacesNetplan по-прежнему генерирует внутренние конфигурации и применяет их, а конфигурации из 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 # не уверен, нужно ли это

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

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