Intereting Posts
Обратный ssh ​​туннель в с .ssh / config Почему я не могу обрезать файл с помощью `head`? Почему моя виртуальная машина Debian VMWare теряет все сетевые подключения через 15 минут после загрузки? Есть ли небольшое, легкое приложение для создания значков на рабочем столе в Windows? Временные метки каталога? Необходимая модификация скрипта оболочки для отображения IP и хоста DD-WRT «Запрос на распределение PTY не удалось на канале 0 stdin: не является tty», когда SSH'ing на сервер Debian Как добавить огромный архив в архив и удалить его параллельно Буферизованные файлы ограничены размером 1 ГБ проверка статуса для команды sleep Как изменить размер активного раздела (в Ubuntu 15.04)? Как сделать терминал user @ машиной выделен жирным шрифтом? максимальное количество файлов ls может отображать Как исправить ошибку на жестком диске, связанную с usb? Изменение порядка разделов в GParted

Откуда система определяет временное имя хоста?

В RHEL 7.2 система запускает и определяет имя хоста хоста. Если /etc/hostname недоступно (т. Е. Удалено) и /etc/machine-info недоступно, и ядро ​​не настроено с этой информацией (то есть sysctl 's kernel.hostname ), systemd назначает «переходное» имя хоста к хозяину. Вопрос в том, откуда он это определяет?

Хост был изначально назван таким образом. Затем я клонировал хост (это виртуальная машина) и уничтожил все ссылки на это имя. Но тогда в процессе загрузки, очень рано, он устанавливается таким образом.

Если я rescuemode в rescuemode я вижу, что он устанавливает имя хоста очень рано:

 [ 0.456076] systemd[1]: systemd 208 running in system mode. (+PAM +LIBWRAP +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +AC L +XZ) [ 0.456664] systemd[1]: Detected virtualization 'kvm'. [ 0.456955] systemd[1]: Running in initial RAM disk. [ 0.458496] systemd[1]: Set hostname to <badhostname.example.com>. [ 0.475394] systemd[1]: Expecting device dev-mapper-vgroot\x2dlvroot.device... 

В командной строке оно задано как «временное» имя хоста:

 # hostnamectl status Transient hostname: badhostname.mydomain.com ... 

Возможно, это не systemd : я даже получаю эту проблему при использовании init=/bin/bash , но systemd запускается внутри образа initrd.

  • Он не установлен в grub или что-то еще.
  • Он не устанавливается DHCP, так как при загрузке сеть отключается.
  • Это не в файловой системе:

     # find / \( -path /sys -prune -o -path /proc -prune -o -path /run -prune \) -o -type f -exec grep -ilrF "${HOSTNAME}" {} + <some .git files> <history files of non-root user> 

Так или иначе, ядро ​​или systemd определяет старое имя хоста и использует его в качестве переходного процесса, и я совершенно не понимаю, как это сделать! , Я find ... -exec grep без каких-либо результатов, кроме /var/log/dmesg . Я говорю вам, systemd преследовал моего хозяина!

РЕДАКТИРОВАТЬ 2: Единственный раз, когда я этого не понимаю, я загружаюсь в предоставленные спасательные initramfs. По-видимому, созданные initramfs содержат грязные секреты!

Благодаря знаниям Дон Криссти и процессу устранения, делается вывод о том, что виновником является образ initramfs. Как-то dracut когда он создает изображение, решает включить кешированную версию имени хоста (!?!).

Перестройка initrd / initram fs рассматривается здесь, но вкратце (поскольку вы, дорогой читатель, возможно, не имеете доступа), do

 dracut -f -v