Solusi nyata (!) Untuk masalah ini adalah mengikuti perintah:
sudo sed -i.old-`date +%Y%m%d-%H%M%S` '/^auto lo$/!s/^auto /allow-hotplug /' /etc/network/interfaces
Dalam /etc/network/interfaces
hal ini mengubah semua antarmuka (kecuali lo
) dari auto
menjadi allow-hotplug
. Dengan cara ini, boot tidak lagi menunggu antarmuka muncul terlebih dahulu.
Peringatan: Setelah perubahan ini, antarmuka yang terhubung secara permanen mungkin akan tetap hidup setelah boot sampai systemd
menerima peristiwa plug nyata. Lihat Catatan di bawah ini.
Contoh sebelumnya (lihat auto eth0
):
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
Contoh setelah (lihat allow-hotplug eth0
):
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Catatan:
Jika Anda memasang saham jaringan /etc/fstab
, gunakan auto
dan bukan allow-hotplug
untuk antarmuka ke jaringan berbagi. Jika tidak, Anda mungkin melihat hal-hal aneh terjadi pada proses boot, karena jaringan harus tersedia sebelum pemasangan berbagi jaringan. allow-hotplug
tidak memastikan ini.
Jika antarmuka berada dalam auto
mode, Anda menyatakan: "Antarmuka ini sangat penting untuk boot, jadi kita harus menunggu sampai muncul sebelum kita boot." Oleh karena itu, jika mereka tidak muncul, Ubuntu menunda boot dengan failafe, menunggu mereka muncul hingga 120 detik. Dan ini adalah hal yang benar untuk dilakukan.
Sebaliknya, Antarmuka yang diatur untuk allow-hotplug
memberi tahu Ubuntu, bahwa mereka adalah opsional. Karenanya mereka tidak penting untuk boot.
Ubuntu mencatat antarmuka mana yang tersedia pada waktu instalasi, dan mengasumsikan, bahwa mereka penting untuk operasi nanti. Ini adalah pilihan yang konservatif, jika antarmuka nanti diperlukan karena beberapa Layanan mengikatnya, karena layanan tersebut gagal untuk memulai jika mereka melewatkan antarmuka yang sedang naik.
Ada juga pengaturan kernel yang memungkinkan proses untuk mengikat ke IP tidak ada, sehingga Anda selalu dapat menggunakan allow-hotplug
jika Anda suka, tanpa merusak stabilitas proses boot. Namun, ini adalah kisah yang sangat berbeda.
Catatan (pembaruan 2018-01-04):
Di sisi saya, allow-auto
melakukan hal yang sama auto
, sehingga tidak membantu (dicoba dengan br0
).
Setelah memutakhirkan salah satu sistem saya ke Debian Stretch dan beralih ke SystemD, boot menjadi tertunda tak tertahankan sambil menunggu antarmuka (terhubung secara permanen di luar) br0
muncul. Namun dengan allow-hotplug
antarmuka br0
tetap turun setelah boot . Mungkin ini disebabkan oleh SystemD tidak menerima peristiwa plug nyata atau sintetik pada antarmuka seperti itu. Saya tidak menggali lebih dalam tentang ini, karena beberapa crontab
entri tidak jelas @reboot /sbin/ifup br0
untuk root
memperbaikinya untuk saya. (Ini berhasil, tetapi mungkin adalah sesuatu, yang sebaiknya tidak direkomendasikan kepada orang lain. Saya ingin mendengar jika seseorang memiliki ide yang lebih baik.)
((Teks berakhir di sini, sisanya untuk hiburan Anda))
Dan di sini adalah cerita waktu tidur, terinspirasi oleh ini:
Beberapa petani tanaman mengamuk. Tanaman mereka mengering! Jadi mereka menyelidiki mengapa tidak ada cukup air di saluran irigasi. Dalam jarak yang lebih dekat, mereka segera melihat pelakunya. Bendungan! Bendungan terkutuk itu mengangkat semua air!
Mulai saat ini jelas apa yang harus dilakukan. "Meledakkan bendungan!" mereka berteriak dan mulai mengumpulkan dinamit mereka. Kemudian mereka semua langsung menuju bendungan.
Anak kecil dari salah seorang petani bertanya kepada ayahnya tentang apa yang sedang terjadi. Dia memberi tahu putranya, "Tidak ada cukup air di parit, jadi kami meledakkan bendungan!" Kemudian dia segera pergi mengikuti bungkusan itu.
"Tapi", si kecil mencoba berteriak setelah ayahnya, "Tapi ada katup! Buka saja katupnya!" Sayangnya, suaranya terlalu lembut, dan kakinya terlalu pendek, jadi pesan ini tidak sampai ke siapa pun.
Bocah itu duduk dan menangis. Setengah jam kemudian dia mendengar "Boom" di kejauhan yang menghancurkan plaground favoritnya di bendungan, tempat katup itu juga berada.
Apa yang terjadi selanjutnya?
Air Bah menyapu semua tanaman berharga. Bank mengambil pertanian ayah anak laki-laki itu. Ayahnya tidak mampu membayar sekolah yang bagus. Maka bocah itu bergabung dengan tentara untuk mendapatkan pendidikan yang lebih tinggi. Di sana ia mempelajari segala sesuatu tentang phyic bahan peledak dan sekarang mencoba untuk menciptakan bendungan tahan ledakan.
Apa hubungan kisah ini dengan ini di sini?
- Para petani tanaman adalah jawaban lain.
- Anak laki-laki itu adalah jawaban ini.
- Bendungannya adalah Ubuntu yang gagal tidur.
- Katup adalah pengaturan antarmuka yang tepat.
- Air adalah proses booting.
- Pangkas adalah OS Ubuntu Anda.
- Dan parit yang terisi adalah, bagaimana proses boot seharusnya.
Pengaturan antarmuka, yang hidup dalam /etc/network/interfaces
, diledakkan dengan tidur di failafe dihapus, dan bahkan jika seseorang melihat katup tertutup ( auto
), tidak ada yang mengadu bahwa itu bisa openend juga!
auto lo iface lo inet loopback
tidak berfungsi