Trong RHEL 7.2, systemd
khởi động và xác định tên máy chủ của máy chủ. Nếu /etc/hostname
không có sẵn (ví dụ, loại bỏ), và /etc/machine-info
là unavilable, và hạt nhân không được cấu hình với các thông tin đó (tức là, sysctl
's kernel.hostname
), systemd
gán một 'thoáng' hostname cho máy chủ. Câu hỏi là: nó xác định điều này từ đâu?
Các máy chủ ban đầu được đặt tên theo cách này. Sau đó, tôi đã nhân bản máy chủ (đó là VM) và xóa tất cả các tham chiếu đến tên đó. Nhưng sau đó trong quá trình khởi động, rất sớm, nó được đặt theo cách đó.
Nếu tôi khởi động vào rescuemode
tôi có thể thấy rằng nó đặt tên máy chủ rất sớm:
[ 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...
Tại dấu nhắc lệnh, nó được đặt làm tên máy chủ "tạm thời":
# hostnamectl status
Transient hostname: badhostname.mydomain.com
...
Có thể là không phải systemd
: Tôi thậm chí còn gặp phải vấn đề này khi sử dụng init=/bin/bash
, nhưng systemd đang chạy trong hình ảnh initrd.
- Nó không được đặt trong grub hoặc bất cứ điều gì.
- Nó không được cài đặt bởi DHCP vì mạng bị tắt khi khởi động.
Nó không phải là bất cứ nơi nào trong hệ thống tập tin:
# 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>
Bằng cách nào đó, kernel hoặc systemd đang xác định tên máy chủ cũ và sử dụng nó như một tạm thời, và tôi hoàn toàn mất phương hướng! . Tôi đã làm một find ... -exec grep
không có kết quả ngoại trừ /var/log/dmesg
. Tôi đang nói với bạn, systemd đã ám ảnh chủ nhà của tôi!
EDIT 2: Lần duy nhất tôi không nhận được là nếu tôi khởi động vào các initramfs được cung cấp. Rõ ràng, các initramfs được tạo ra giữ bí mật bẩn thỉu!