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

Brad Doster doster42 at gmail.com
Fri Feb 10 22:01:59 UTC 2017


Huh?  The problem occurs when apt updates initramfs, so it is a package
manager issue, not a RAID manager issue.  Did you read the whole report?

On Fri, Feb 10, 2017 at 1:48 PM, Julian Andres Klode <jak at debian.org> wrote:

> 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.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-mdadm-devel/attachments/20170210/b0fbe52d/attachment-0001.html>


More information about the pkg-mdadm-devel mailing list