Memecahkan masalah booting instans Amazon EC2 Linux dari volume yang salah - Amazon Elastic Compute Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memecahkan masalah booting instans Amazon EC2 Linux dari volume yang salah

Dalam beberapa situasi, volume selain volume yang melekat pada /dev/xvda atau /dev/sda menjadi volume root dari instance Linux. Hal ini dapat terjadi ketika Anda telah melampirkan volume root dari instans lain, atau volume yang dibuat dari snapshot volume root, ke instans dengan volume root yang sudah ada.

Hal ini disebabkan oleh cara kerja ramdisk awal di Linux. Ramdisk awal di Linux memilih volume yang ditentukan sebagai / dalam /etc/fstab, dan pada beberapa distribusi, ini ditentukan oleh label yang terlampir ke partisi volume. Secara khusus, Anda menemukan bahwa /etc/fstab akan terlihat seperti berikut ini:

LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0

Jika Anda memeriksa label kedua volume tersebut, Anda akan melihat bahwa keduanya berisi label /:

[ec2-user ~]$ sudo e2label /dev/xvda1 / [ec2-user ~]$ sudo e2label /dev/xvdf1 /

Dalam contoh ini, Anda dapat menjadikan /dev/xvdf1 sebagai perangkat root yang menjadi tujuan boot instans Anda setelah ramdisk awal dijalankan, alih-alih volume /dev/xvda1 yang Anda inginkan untuk melakukan boot. Untuk menyelesaikan hal ini, gunakan perintah e2label yang sama untuk mengubah label volume terlampir yang tidak ingin Anda gunakan untuk boot.

Dalam beberapa kasus, menentukan UUID in /etc/fstab dapat menyelesaikan ini. Namun, jika kedua volume berasal dari snapshot yang sama, atau volume sekunder dibuat dari snapshot volume primer, mereka berbagi file. UUID

[ec2-user ~]$ sudo blkid /dev/xvda1: LABEL="/" UUID=73947a77-ddbe-4dc7-bd8f-3fe0bc840778 TYPE="ext4" PARTLABEL="Linux" PARTUUID=d55925ee-72c8-41e7-b514-7084e28f7334 /dev/xvdf1: LABEL="old/" UUID=73947a77-ddbe-4dc7-bd8f-3fe0bc840778 TYPE="ext4" PARTLABEL="Linux" PARTUUID=d55925ee-72c8-41e7-b514-7084e28f7334
Untuk mengubah label volume ext4 terlampir
  1. Gunakan perintah e2label untuk mengubah label volume agar menjadi sesuatu selain /.

    [ec2-user ~]$ sudo e2label /dev/xvdf1 old/
  2. Verifikasi bahwa volume tersebut memiliki label baru.

    [ec2-user ~]$ sudo e2label /dev/xvdf1 old/
Untuk mengubah label volume xfs terlampir
  • Gunakan perintah xfs_admin untuk mengubah label volume agar menjadi sesuatu selain /.

    [ec2-user ~]$ sudo xfs_admin -L old/ /dev/xvdf1 writing all SBs new label = "old/"

Setelah mengubah label volume sebagaimana ditunjukkan, Anda dapat melakukan boot ulang instans dan memiliki volume yang tepat yang dipilih oleh ramdisk awal saat instans melakukan boot.

penting

Jika Anda ingin melepaskan lampiran volume dengan label baru dan mengembalikannya ke instans lain untuk digunakan sebagai volume root, Anda harus melakukan prosedur di atas lagi dan mengubah label volume kembali ke nilai aslinya. Jika tidak, instans lain tidak bisa melakukan boot karena ramdisk tidak dapat menemukan volume dengan label /.