Назад | Перейти на главную страницу

Почему «aptitude safe-upgrade» заставляет загрузку Ubuntu зависать на «Ожидании корневой файловой системы»?

Я запустил инстанс Ubuntu EBS на Amazon EC2, используя последний собственный AMI Ubuntu для 10.04 Lucid, ami-ad36fbc4`

После запуска экземпляра я выполнил команду sudo aptitude safe-upgrade который, похоже, обновил ядро ​​с vmlinuz-2.6.32-318-ec2 к vmlinuz-2.6.32-340-ec2

Теперь экземпляр не загружается, выдает следующую ошибку: Waiting for root file system ...

Если я отключу EBS и отредактирую /boot/grub/menu.lst файл и удалите записи, ссылающиеся на vmlinuz-2.6.32-340-ec2 он снова загрузится.

Итак, вопросы:

  1. Почему это происходит?
  2. Не safe-upgrade должен быть достаточно консервативным, чтобы ничего не ломать?
  3. Или мне просто не следует использовать safe-upgrade на инстансе EC2? И если да, то почему бы и нет?

ps: Связанная проблема, которую я прочитал во время исследования, была Загрузка системы зависает при ожидании корневой файловой системы - процедура восстановления из / dev / hda, которая стала / dev / sda (см. раздел 4.8), но, как видно из menu.lst записи упоминаются LABEL=cloudimg-rootfs и нет /sda/a и /hda/a

Для справки, файл меню grub выглядит следующим образом:

title       Ubuntu 10.04.3 LTS, kernel 2.6.32-340-ec2
root        (hd0)
kernel      /boot/vmlinuz-2.6.32-340-ec2 root=LABEL=cloudimg-rootfs ro xencons=hvc0 console=hvc0 
initrd      /boot/initrd.img-2.6.32-340-ec2

title       Ubuntu 10.04.3 LTS, kernel 2.6.32-340-ec2 (recovery mode)
root        (hd0)
kernel      /boot/vmlinuz-2.6.32-340-ec2 root=LABEL=cloudimg-rootfs ro  single
initrd      /boot/initrd.img-2.6.32-340-ec2

title       Ubuntu 10.04.3 LTS, kernel 2.6.32-318-ec2
root        (hd0)
kernel      /boot/vmlinuz-2.6.32-318-ec2 root=LABEL=cloudimg-rootfs ro xencons=hvc0 console=hvc0 
initrd      /boot/initrd.img-2.6.32-318-ec2

title       Ubuntu 10.04.3 LTS, kernel 2.6.32-318-ec2 (recovery mode)
root        (hd0)
kernel      /boot/vmlinuz-2.6.32-318-ec2 root=LABEL=cloudimg-rootfs ro  single
initrd      /boot/initrd.img-2.6.32-318-ec2

title       Ubuntu 10.04.3 LTS, memtest86+
root        (hd0)
kernel      /boot/memtest86+.bin

А загрузочная консоль выглядит так (когда зависает):

i-3121e5b7
2011-11-27T19:20:03+0000
Xen Minimal OS!
  start_info: 0xac4000(VA)
    nr_pages: 0x26700
  shared_inf: 0xbb4b2000(MA)
     pt_base: 0xac7000(VA)
nr_pt_frames: 0x9
    mfn_list: 0x990000(VA)
   mod_start: 0x0(VA)
     mod_len: 0
       flags: 0x0
    cmd_line: root=/dev/sda1 ro 4
  stack:      0x94f860-0x96f860
MM: Init
      _text: 0x0(VA)
     _etext: 0x5ff6d(VA)
   _erodata: 0x78000(VA)
     _edata: 0x80b00(VA)
stack start: 0x94f860(VA)
       _end: 0x98fe68(VA)
  start_pfn: ad3
    max_pfn: 26700
Mapping memory range 0xc00000 - 0x26700000
setting 0x0-0x78000 readonly
skipped 0x1000
MM: Initialise page allocator for c01000(c01000)-26700000(26700000)
MM: done
Demand map pfns at 26701000-2026701000.
Heap resides at 2026702000-4026702000.
Initialising timer interface
Initialising console ... done.
gnttab_table mapped at 0x26701000.
Initialising scheduler
Thread "Idle": pointer: 0x2026702010, stack: 0x26640000
Initialising xenbus
Thread "xenstore": pointer: 0x20267027c0, stack: 0x26650000
Dummy main: start_info=0x96f960
Thread "main": pointer: 0x2026702f70, stack: 0x26660000
"main" "root=/dev/sda1" "ro" "4" 
vbd 2049 is hd0
******************* BLKFRONT for device/vbd/2049 **********


backend at /local/domain/0/backend/vbd/526/2049
Failed to read /local/domain/0/backend/vbd/526/2049/feature-barrier.
Failed to read /local/domain/0/backend/vbd/526/2049/feature-flush-cache.
16777216 sectors of 512 bytes
**************************
[H[J  Booting 'Ubuntu 10.04.3 LTS, kernel 2.6.32-340-ec2'

root  (hd0)
 Filesystem type is ext2fs, using whole disk
kernel  /boot/vmlinuz-2.6.32-340-ec2 root=LABEL=cloudimg-rootfs ro xencons=hvc0
 console=hvc0 
initrd  /boot/initrd.img-2.6.32-340-ec2

xc_dom_probe_bzimage_kernel: kernel is not a bzImage
close blk: backend at /local/domain/0/backend/vbd/526/2049
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 2.6.32-340-ec2 (buildd@yellow) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #40-Ubuntu SMP Wed Nov 16 14:36:38 UTC 2011 (Ubuntu 2.6.32-340.40-ec2 2.6.32.46+drm33.20)
[    0.000000] Command line: root=LABEL=cloudimg-rootfs ro xencons=hvc0 console=hvc0 
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] Xen-provided physical RAM map:
[    0.000000]  Xen: 0000000000000000 - 0000000026f00000 (usable)
[    0.000000] last_pfn = 0x26f00 max_arch_pfn = 0x80000000
[    0.000000] init_memory_mapping: 0000000000000000-0000000026f00000
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] RAMDISK: 01844000 - 03293000
[    0.000000] (3 early reservations) ==> bootmem [0000000000 - 0026700000]
[    0.000000]   #0 [0001844000 - 00033e9000]     Xen provided ==> [0001844000 - 00033e9000]
[    0.000000]   #1 [0001000000 - 00018237b8]    TEXT DATA BSS ==> [0001000000 - 00018237b8]
[    0.000000]   #2 [00033e9000 - 0003523000]          PGTABLE ==> [00033e9000 - 0003523000]
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000000 -> 0x00001000
[    0.000000]   DMA32    0x00001000 -> 0x00100000
[    0.000000]   Normal   0x00100000 -> 0x00100000
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[2] active PFN ranges
[    0.000000]     0: 0x00000000 -> 0x00026700
[    0.000000]     0: 0x00026f00 -> 0x00026f00
[    0.000000] NR_CPUS:64 nr_cpumask_bits:64 nr_cpu_ids:1 nr_node_ids:1
[    0.000000] PERCPU: Embedded 18 pages/cpu @ffff880003298000 s44248 r8192 d21288 u73728
[    0.000000] pcpu-alloc: s44248 r8192 d21288 u73728 alloc=18*4096
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 155259
[    0.000000] Kernel command line: root=LABEL=cloudimg-rootfs ro xencons=hvc0 console=hvc0 
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.000000] Initializing CPU#0
[    0.000000] allocated 6379520 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Software IO TLB disabled
[    0.000000] Memory: 574464k/637952k available (4836k kernel code, 8192k absent, 54588k reserved, 2084k data, 228k init)
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS:96
[    0.000000] Xen reported: 2666.760 MHz processor.
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [hvc0] enabled
[    0.230003] Calibrating delay using timer specific routine.. 5347.09 BogoMIPS (lpj=26735464)
[    0.230055] Security Framework initialized
[    0.230073] AppArmor: AppArmor initialized
[    0.230089] Mount-cache hash table entries: 256
[    0.230209] Initializing cgroup subsys ns
[    0.230215] Initializing cgroup subsys cpuacct
[    0.230218] Initializing cgroup subsys memory
[    0.230228] Initializing cgroup subsys devices
[    0.230230] Initializing cgroup subsys freezer
[    0.230259] CPU: L1 I cache: 32K, L1 D cache: 32K
[    0.230262] CPU: L2 cache: 6144K
[    0.230271] SMP alternatives: switching to UP code
[    0.255645] Freeing SMP alternatives: 39k freed
[    0.255834] Brought up 1 CPUs
[    0.255922] devtmpfs: initialized
[    0.256333] NET: Registered protocol family 16
[    0.256945] Brought up 1 CPUs
[    0.257349] PCI: Fatal: No config space access function found
[    0.257353] PCI: setting up Xen PCI frontend stub
[    0.257605] bio: create slab <bio-0> at 0
[    0.257681] vgaarb: loaded
[    0.257889] suspend: event channel 9
[    0.258172] xen_mem: Initialising balloon driver.
[    0.260364] PCI: System does not support PCI
[    0.260368] PCI: System does not support PCI
[    0.260432] NET: Registered protocol family 8
[    0.260435] NET: Registered protocol family 20
[    0.260451] NetLabel: Initializing
[    0.260455] NetLabel:  domain hash size = 128
[    0.260456] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.260490] NetLabel:  unlabeled traffic allowed by default
[    0.260505] Switching to clocksource xen
[    0.261840] AppArmor: AppArmor Filesystem Enabled
[    0.262007] NET: Registered protocol family 2
[    0.262083] IP route cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.262363] TCP established hash table entries: 131072 (order: 9, 2097152 bytes)
[    0.263136] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.263553] TCP: Hash tables configured (established 131072 bind 65536)
[    0.263559] TCP reno registered
[    0.263629] NET: Registered protocol family 1
[    0.263708] platform rtc_cmos: registered platform RTC device (no PNP device found)
[    0.263814] audit: initializing netlink socket (disabled)
[    0.263838] type=2000 audit(1322421419.386:1): initialized
[    0.269569] Trying to unpack rootfs image as initramfs...
[    0.279699] VFS: Disk quotas dquot_6.5.2
[    0.279731] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.279885] DLM (built Nov 16 2011 14:40:41) installed
[    0.279994] JFS: nTxBlock = 4920, nTxLock = 39360
[    0.289416] SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled
[    0.289643] SGI XFS Quota Management subsystem
[    0.299611] Slow work thread pool: Starting up
[    0.299651] Slow work thread pool: Ready
[    0.299659] GFS2 (built Nov 16 2011 14:41:38) installed
[    0.299675] msgmni has been set to 1230
[    0.299847] alg: No test for stdrng (krng)
[    0.299858] io scheduler noop registered
[    0.299860] io scheduler anticipatory registered
[    0.299862] io scheduler deadline registered (default)
[    0.299871] io scheduler cfq registered
[    0.314987] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.315818] brd: module loaded
[    0.316148] loop: module loaded
[    0.316216] Xen virtual console successfully installed as hvc0
[    0.316254] Event-channel device installed.
[    0.324444] Freeing initrd memory: 26940k freed
[    0.338978] netfront: Initialising virtual ethernet driver.
[    0.340057] PPP generic driver version 2.4.2
[    0.340628] Equalizer2002: Simon Janes (simon@ncm.com) and David S. Miller (davem@redhat.com)
[    0.340767] tun: Universal TUN/TAP device driver, 1.6
[    0.340769] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    0.341644] i8042.c: No controller found.
[    0.341704] mice: PS/2 mouse device common for all mice
[    0.341758] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
[    0.341810] Driver for 1-wire Dallas network protocol.
[    0.341865] device-mapper: uevent: version 1.0.3
[    0.341932] device-mapper: ioctl: 4.15.0-ioctl (2009-04-01) initialised: dm-devel@redhat.com
[    0.342186] NET: Registered protocol family 17
[    0.342285] registered taskstats version 1
[    0.355601] xen-vbd: registered block device major 8
[    0.440415] XENBUS: Device with no driver: device/console/0
[    0.440429] /build/buildd/linux-ec2-2.6.32/drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    0.440534] Freeing unused kernel memory: 228k freed
[    0.440675] Write protecting the kernel read-only data: 6492k
Loading, please wait...
[    0.460565] udev: starting version 151
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Waiting for root file system ... 

Мне очень жаль, что ответ так задерживается. Сначала несколько комментариев:

  • В будущем, если вы обнаружите проблемы с Ubuntu, работающим на Amazon EC2, лучший способ решить эту проблему - открыть ошибку на панели запуска (http://launchpad.net/ubuntu). Вы можете запустить «ubuntu-bug» внутри экземпляра EC2, и он соберет некоторую информацию об экземпляре и соответствующим образом пометит ошибку. Кроме того, не стесняйтесь подписываться на «smoser» или «utlemming».
  • Список ami, который вы перечисляете, больше не актуален (просто из-за того, что прошло время и Ubuntu обновлял образы на EC2). Если вы заинтересованы в поиске самых последних официальных AMI, см.
       https://askubuntu.com/questions/53582/how-do-i-know-what-ubuntu-ami-to-launch-on-ec2

  • Ядро, которое вы использовали, больше не актуально для версии 10.04 (опять же, просто из-за технического обслуживания Ubuntu).

Итак, все, что сказал, бег aptitude safe-upgrade должен быть безопасным на EC2. Я убедился, что это работает при использовании указанного выше AMI как на t1.micro, так и на m1.large. На данный момент это приводит к ядру 2.6.32-341.42, а не к тому, что у вас было 2.6.32-340.40.

Я попытался явно воспроизвести вашу проблему, загрузив и установив ту же версию ядра через архив панели запуска. Мой экземпляр как t1.micro, так и m1.large перезагрузился в 2.6.32-340 после простого sudo dpkg -i linux-image-2.6.32-340-ec2_2.6.32-340.40_amd64.deb && sudo reboot.

Очередной раз, aptitude safe-upgrade и apt-get dist-upgrade должно быть совершенно безопасно на EC2. Если это не так, пожалуйста, сообщите об ошибках.