Bagaimana cara saya berinteraksi dengan konsol selama waktu boot di Amazon EC2?

8

Saya punya instance yang macet saat boot prompt ini (melihat log instance dari konsol manajemen):

The disk drive for /mydisk is not ready yet or not present
Continue to wait; or Press S to skip mounting or M for manual recovery

Saya menambahkan volume EBS, memasangnya, lalu menghapus volume EBS dan lupa untuk menghapus entri dari / etc / fstab dan reboot mesin. Sekarang ia meminta saya pada saat boot, dan saya tidak dapat SSH ke instance.

Apa yang harus saya lakukan untuk mengatasi masalah ini?

ErJab
sumber

Jawaban:

11

Saya tidak tahu solusi 'mudah' untuk masalah Anda, tetapi ada solusi yang agak berbelit-belit (tergantung pada jenis perangkat root Anda).

Jika instance Anda memiliki root EBS, solusinya cukup sederhana: hentikan instance, lepaskan drive EBS, luncurkan instance lain dan pasang volume EBS ke dalamnya. Edit file fstab Anda sesuai kebutuhan, lepaskan volume EBS dan pasang kembali ke instance asli.

Jika instance Anda memiliki root yang didukung S3 (yaitu instance-store), solusinya agak sulit. Anda dapat mengunduh data dari AMI Anda (menggunakan ec2-download-bundle ), dan kemudian mengekstrak data itu ke dalam satu file (menggunakan ec2-unbundle ). Anda kemudian dapat memasang gambar, melakukan perubahan yang diperlukan, dan rebundle gambar (dengan EC2-bundle-vol , menimpa volume default untuk bundel dengan flag -v). Itu akan memberi Anda AMI baru yang layak, identik dengan yang lama, kecuali untuk modifikasi yang Anda buat. Atau, Anda dapat menyalin konten file gambar ke volume EBS menggunakan dd - dan kemudian mengonversi ke instance yang didukung EBS root.

cyberx86
sumber
Untungnya, instance saya memiliki root EBS! Terima kasih banyak atas jawabannya. Saya akan mencobanya dan mengkonfirmasi bahwa itu berhasil.
ErJab
1
ErJab: Saya menulis artikel yang menjelaskan cara melakukan ini dengan EBS boot: alestic.com/2011/02/ec2-fix-ebs-root
Eric Hammond
Apakah akan bijaksana untuk juga menambahkan nofailuntuk /etc/fstabdalam kasus Anda membuat kesalahan ketik? Mungkin tidak, mungkin "kesalahan" (seperti yang dijelaskan dalam fstab(5)) tidak menunda proses boot.
Adam Monsen
@AdamMonsen: itu adalah praktik yang baik untuk beberapa drive - misalnya drive singkat, karena proses boot akan keluar ke mode pemulihan jika disk tidak tersedia. Saya biasanya menggunakan opsi nobootwait- belum mencoba nofail- Saya percaya ada beberapa perbedaan halus di antara mereka.
cyberx86
0

Jika ubuntu Anda miliki systemd, Anda dapat mengedit /lib/systemd/system/local-fs.targetdan mengomentari dua baris terakhir:

#OnFailure=emergency.target
#OnFailureJobMode=replace-irreversibly

Saya belum menguji ini secara ekstensif dan tidak tahu apakah ada risiko atau efek samping yang terlibat, tetapi sejauh ini berfungsi seperti pesona. Itu me-mount volume root dan semua volume lainnya (kecuali yang salah konfigurasi, jelas), kemudian melanjutkan proses boot sampai SSH naik, sehingga Anda dapat terhubung ke instance dan memperbaiki fstabentri yang salah .

ThiagoAlves
sumber