Bug#854830: apt updates initramfs incorrectly, breaks RAID/mdadm

Julian Andres Klode jak at debian.org
Fri Feb 10 21:48:07 UTC 2017


Control: reassign -1 
On Fri, Feb 10, 2017 at 01:38:45PM -0800, Brad Doster wrote:
> Package: apt
> Version: 1.0.9.8.4

Thanks for the laugh :) APT is your package manager, not your RAID
manager. Reassigning there.


> 
> During initial installation of Debian 8, I used mdadm to create 2 RAID
> arrays as follows:
> 
> /dev/md0 - RAID 1 - 4 drives - contains /boot only
> /dev/md1 - RAID 5 - 3 drives + 1 spare - contains /
> 
> Both are needed to successfully boot the system.
> 
> During installation I name the machine HOSTA.  A few days later, I decided
> to change the machine's host name to HOSTB.  After a few weeks of
> successful operation of HOSTB, I ran apt-update followed by apt-upgrade.
> Among the updates were linux-image updates, which caused initramfs to be
> updated.  After the updates, rebooting the system landed me here:
> 
> =====
> Gave up waiting for root device. Common problems:
>   — Boot args (cat /proc/cmdline)
>     — Check rootdelay= (did the system wait long enough?)
>     — Check root= (did the system wait for the right device?)
>   — Missing modules (cat /proc/modules; ls /dev)
> ALERT! /dev/disk/by-uuid/054a6dcc-d280-4aff-9977 does not exist.
> Dropping to a shell!
> 
> BusyBox v.1.22.1 (Ubuntu 1:1.22.0-9deb8u1) built-in shell (ash)
> Enter 'help' for list of built-in commands.
> 
> /bin/sh: can't access tty: job control turned off
> (initramfs)
> =====
> 
> In the initramfs shell, /etc/mdadm/mdamd.conf contained the new hostname,
> HOSTB instead of HOSTA:
> 
> =====
> # definitions of existing MD arrays
> ARRAY /dev/md/0  metadata=1.2 UUID=413a2cf3:ef0784ac:1e135c73:7a1723c6
> name=HOSTB:0
> ARRAY /dev/md/1  metadata=1.2 UUID=ae1ab583:e5e30fb9:e2c807a2:b5e95f42
> name=HOSTB:1
>    spares=1
> =====
> 
> Editing mdadm.conf to use HOSTA in place of HOSTB allowed me to assemble my
> arrays and continue booting the system:
> 
> =====
> (initramfs) mdadm --assemble --scan
> mdadm: /dev/md/0 has been started with 4 drives.
> mdadm: /dev/md/1 has been started with 3 drives and 1 spare.
> (initramfs) exit
> =====
> 
> After a successful boot, mdadm -D confirms that the original host name,
> HOSTA is part of the array configuraion:
> 
> =====
> mdadm -D /dev/md1
> /dev/md1:
>         Version : 1.2
>   Creation Time : Thu Dec 29 09:02:43 2016
>      Raid Level : raid5
>      Array Size : 2130618368 (2031.92 GiB 2181.75 GB)
>   Used Dev Size : 1065309184 (1015.96 GiB 1090.88 GB)
>    Raid Devices : 3
>   Total Devices : 4
>     Persistence : Superblock is persistent
> 
>   Intent Bitmap : Internal
> 
>     Update Time : Thu Feb  9 17:25:16 2017
>           State : clean
>  Active Devices : 3
> Working Devices : 4
>  Failed Devices : 0
>   Spare Devices : 1
> 
>          Layout : left-symmetric
>      Chunk Size : 512K
> 
>            Name : HOSTA:1       # <--- here is the original hostname given
> to the machine during installation
>            UUID : ae1ab583:e5e30fb9:e2c807a2:b5e95f42
>          Events : 4831
> 
>     Number   Major   Minor   RaidDevice State
>        0       8        3        0      active sync   /dev/sda3
>        1       8       19        1      active sync   /dev/sdb3
>        2       8       35        2      active sync   /dev/sdc3
> 
>        3       8       51        -      spare   /dev/sdd3
> =====
> 
> In this case, the updates to initramfs should NOT have changed the hostname
> in the mdadm.conf file.  Doing so prevented the arrays from being assembled
> and the system from booting.
> 
> To get around the issue until the next apt-upgrade installs something
> causing initramfs to be updated again, on the up and running system, edit
> /etc/mdadm/mdadm.conf to use the original hostname and then run
> update-initramfs to install the change.  Once done, the system reboots
> normally again.
> 
> Once the issue is known, it is also possible to run apt-upgrade to
> completion, then before rebooting, edit mdamd.conf and manually execute
> update-initramfs.  This will prevent an untimely visit to the BusyBox
> screen, and in the case of remote upgrades being done, will prevent the
> need to physically visit the server in order to complete the boot process.
> 
> While this may be considered a problem with mdadm - why is it using a
> potentially volatile parameter like hostname in its permanent
> configuration? - until that is addressed, apt-upgrade should not modify the
> hostname used in the mdadm.conf file.

-- 
Debian Developer - deb.li/jak | jak-linux.org - free software dev
                  |  Ubuntu Core Developer |
When replying, only quote what is necessary, and write each reply
directly below the part(s) it pertains to ('inline').  Thank you.



More information about the pkg-mdadm-devel mailing list