← Back to team overview

kernel-packages team mailing list archive

[Bug 1371634] Re: block devices appear twice

 

Ok, so Oleg and I were looking at a solution, and figured we'd give the "maybe it just works" path a try.
I installed a system, it installed onto /dev/sda (as this bug shows).
I then 'apt-get install multipath-tools-boot'

I rebooted, with the 'root=LABEL=cloudimg-rootfs' on the cmdline (as
normal).  It died in initramfs unable to find root.  The full bootlog at
http://paste.ubuntu.com/11547135/ .

The multipath-tools-boot package puts some code into the initramfs
(/usr/share/initramfs-tools/scripts/local-top/multipath) that does this:

| if [ -x /sbin/kpartx -a -x /sbin/dmsetup ]; then
|     /sbin/dmsetup ls --target multipath --exec "/sbin/kpartx -a -p -part" >/dev/null
| fi

That looks all well and good.

In the initramfs I did some debugging:
(initramfs) /sbin/dmsetup ls --target multipath
1IBM     IPR-0   5EC2A900000000A0       (252, 1)
1IBM     IPR-0   5EC2A90000000020       (252, 2)
1IBM     IPR-0   5EC2A90000000080       (252, 5)
1IBM     IPR-0   5EC2A90000000060       (252, 3)
1IBM     IPR-0   5EC2A900000000C0       (252, 4)
1IBM     IPR-0   5EC2A90000000040       (252, 0)

And then further debug, I find that dmsetup is calling kpartx seemingly
correctly, but kpartx is I think messing up.

I was able to fix this by booting with:
  root=UUID=f7c3b31d-3411-420e-a57d-9318e43248ba ro console=hvc0 break=post-multipath

Then doing:

(initramfs) cat /tmp/myprog
#!/bin/sh
tgt="$1"
fixed=$(echo "$tgt" | sed 's, ,\\x20,g')
{
echo "input: '$tgt'"
echo "fixed: '$fixed'"
echo /sbin/kpartx -a -v -p -part "$fixed"
/sbin/kpartx -a -v -p -part "$fixed"
ret=$?
echo $ret
} >> /tmp/log 2>&1
exit $ret

(initramfs) rm /tmp/log
(initramfs) /sbin/dmsetup ls --target multipath --exec "/bin/myprog"
(initramfs) cat /tmp/log
input: '/dev/mapper/1IBM     IPR-0   5EC2A900000000A0'
fixed: '/dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A900000000A0'
/sbin/kpartx -a -v -p -part /dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A900000000A0
0
input: '/dev/mapper/1IBM     IPR-0   5EC2A90000000020'
fixed: '/dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000020'
/sbin/kpartx -a -v -p -part /dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000020
0
input: '/dev/mapper/1IBM     IPR-0   5EC2A90000000080'
fixed: '/dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000080'
/sbin/kpartx -a -v -p -part /dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000080
add map 1IBM     IPR-0   5EC2A90000000080-part1 (252:6): 0 16384 linear /dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000080 2048
add map 1IBM     IPR-0   5EC2A90000000080-part2 (252:7): 0 554268639 linear /dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000080 18432
0
input: '/dev/mapper/1IBM     IPR-0   5EC2A90000000060'
fixed: '/dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000060'
/sbin/kpartx -a -v -p -part /dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000060
0
input: '/dev/mapper/1IBM     IPR-0   5EC2A900000000C0'
fixed: '/dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A900000000C0'
/sbin/kpartx -a -v -p -part /dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A900000000C0
0
input: '/dev/mapper/1IBM     IPR-0   5EC2A90000000040'
fixed: '/dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000040'
/sbin/kpartx -a -v -p -part /dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000040


Then ... after that, I have the devices I needed:
(initramfs) blkid
/dev/sda2: LABEL="cloudimg-rootfs" UUID="f7c3b31d-3411-420e-a57d-9318e43248ba" TYPE="ext4" 
/dev/sdg2: LABEL="cloudimg-rootfs" UUID="f7c3b31d-3411-420e-a57d-9318e43248ba" TYPE="ext4" 
/dev/mapper/1IBM\x20\x20\x20\x20\x20IPR-0\x20\x20\x205EC2A90000000080-part2: LABEL="cloudimg-rootfs" UUID="f7c3b31d-3411-420e-a57d-9318e43248ba" TYPE="ext4" 


I exited from there, the remaining boot took over, and mounted the device mapper device as /.

All happy.

So, if there weren't a bug in kpartx we'd have a very easy solution in just installing the multipath-tools-boot package.
That said, it looks like user_friendly_names in /etc/multipath.conf might be relevant.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1371634

Title:
  block devices appear twice

Status in curtin package in Ubuntu:
  Confirmed
Status in linux package in Ubuntu:
  Invalid
Status in multipath-tools package in Ubuntu:
  Confirmed

Bug description:
  $ sudo blkid 
  /dev/sr0: LABEL="Ubuntu-Server 14.04 LTS ppc64el" TYPE="iso9660" 
  /dev/sda2: UUID="795a6e14-ea4e-4718-9e98-c6df3696920c" TYPE="ext4" 
  /dev/sda3: UUID="0a91d81f-6a16-4b96-a92c-11ca8bdc4bf4" TYPE="swap" 
  /dev/sdb2: UUID="1d14c1f3-716f-4fb8-9070-d321b39ffcb3" TYPE="ext4" 
  /dev/sdb3: UUID="9c228177-d65c-4d19-a462-db1891e9781e" TYPE="swap" 
  /dev/sdg2: UUID="795a6e14-ea4e-4718-9e98-c6df3696920c" TYPE="ext4" 
  /dev/sdg3: UUID="0a91d81f-6a16-4b96-a92c-11ca8bdc4bf4" TYPE="swap" 
  /dev/sdh2: UUID="1d14c1f3-716f-4fb8-9070-d321b39ffcb3" TYPE="ext4" 
  /dev/sdh3: UUID="9c228177-d65c-4d19-a462-db1891e9781e" TYPE="swap" 

  I'm not sure what exactly those block devices are (as in if they're
  raided in hardware or they actually represent physical spinning
  disks).  But I do know that writing data to sda causes that data to be
  readable from sdg.

  The same is true:
   sda -> sdg
   sdb -> sdh

  That is what causes those UUIDs to be similar.  Everything is
  functional, you just have to know that if your root device is /dev/sdg
  that you should probably not write data to /dev/sda thinking you can
  use it as a disk.

  ProblemType: Bug
  DistroRelease: Ubuntu 14.04
  Package: linux-image-3.13.0-35-generic 3.13.0-35.62
  ProcVersionSignature: Ubuntu 3.13.0-35.62-generic 3.13.11.6
  Uname: Linux 3.13.0-35-generic ppc64le
  AlsaDevices: Error: command ['ls', '-l', '/dev/snd/'] failed with exit code 2: ls: cannot access /dev/snd/: No such file or directory
  AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
  ApportVersion: 2.14.1-0ubuntu3.4
  Architecture: ppc64el
  ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
  CRDA: Error: [Errno 2] No such file or directory: 'iw'
  CurrentDmesg: [   88.736220] init: plymouth-upstart-bridge main process ended, respawning
  Date: Fri Sep 19 14:31:20 2014
  HibernationDevice: RESUME=UUID=9c228177-d65c-4d19-a462-db1891e9781e
  Lsusb:
   Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
   Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
   Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
   Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  ProcEnviron:
   TERM=screen
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  ProcFB: 0 radeondrmfb
  ProcKernelCmdLine: root=UUID=1d14c1f3-716f-4fb8-9070-d321b39ffcb3 ro console=hvc0 BOOTIF=01-6c-ae-8b-6a-a0-88 quiet
  RelatedPackageVersions:
   linux-restricted-modules-3.13.0-35-generic N/A
   linux-backports-modules-3.13.0-35-generic  N/A
   linux-firmware                             1.127.6
  RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
  SourcePackage: linux
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/curtin/+bug/1371634/+subscriptions


References