Bug#785147: initramfs-tools: NVMe boot drives not supported
Package: initramfs-tools
Version: 0.120
Severity: critical
Tags: d-i patch
Justification: breaks the whole system
Dear Maintainer,
*** Reporter, please consider answering these questions, where appropriate ***
* What led up to the situation?
* What exactly did you do (or not do) that was effective (or
ineffective)?
* What was the outcome of this action?
* What outcome did you expect instead?
*** End of the template - remove these template lines ***
I used the Jessie DVD installer on a system with an NVMe SSD add-in-card (PCIe) that I wanted to make bootable, but there were two problems that halted the process:
1. In the install-the-base-system step, the initial ram disk creation step failed because it couldn't translate the nvme device name (nvme0n1p3) to the drive name (nvme0n1). This appears to be a new naming scheme, where "p[0-9]" refers the partition number.
2. In the boot loader installation step, the grub-installer script again couldn't translate nvme0n1p3 to nvme0n1.
I'm making a separate bug for the grub-installer, so I'll only include the initramfs-tools patch here:
-----
--- initramfs-tools/hook-functions 2015-03-01 16:44:34.000000000 -0500
+++ initramfs-tools/hook-functions.fixed 2015-05-12 14:20:16.806315846 -0400
@@ -434,6 +434,10 @@
block=${dev_node#/dev/i2o/}
block=${block%%[0-9]*}
block='i2o!'$block
+ # nvme device
+ elif [ "${dev_node#/dev/nvme}" != "${dev_node}" ]; then
+ block=${dev_node#/dev/}
+ block=${block%p*}
# classical block device
else
block=${dev_node#/dev/}
-----
Thanks,
Steve Rowe
-- Package-specific info:
-- initramfs sizes
-rw-r--r-- 1 root root 3.6M May 8 01:52 /boot/initrd.img-3.16.0-4-amd64
-rw-r--r-- 1 root root 3.6M May 10 22:09 /boot/initrd.img-4.0.2
-- /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.0.2 root=UUID=9954878e-5783-4f4b-bca3-55d689f221da ro splash
-- resume
RESUME=UUID=ab2d298a-cc4d-46f9-b9a6-6452e4c3754f
-- /proc/filesystems
ext3
ext2
ext4
fuseblk
vfat
-- lsmod
Module Size Used by
iptable_filter 16384 0
ip_tables 28672 1 iptable_filter
x_tables 28672 2 ip_tables,iptable_filter
nf_nat 20480 0
nf_conntrack 90112 1 nf_nat
bridge 102400 0
stp 16384 1 bridge
llc 16384 2 stp,bridge
dm_thin_pool 61440 0
dm_persistent_data 53248 1 dm_thin_pool
dm_bio_prison 16384 1 dm_thin_pool
dm_bufio 24576 1 dm_persistent_data
libcrc32c 16384 1 dm_persistent_data
loop 28672 0
dm_mod 94208 3 dm_persistent_data,dm_bufio,dm_thin_pool
joydev 20480 0
hid_microsoft 16384 0
hid_generic 16384 0
usbhid 45056 0
hid 102400 3 hid_generic,hid_microsoft,usbhid
usb_storage 57344 0
cfg80211 446464 0
nfsd 278528 2
auth_rpcgss 53248 1 nfsd
oid_registry 16384 1 auth_rpcgss
nfs_acl 16384 1 nfsd
nfs 204800 0
lockd 90112 2 nfs,nfsd
grace 16384 2 nfsd,lockd
fscache 49152 1 nfs
sunrpc 270336 6 nfs,nfsd,auth_rpcgss,lockd,nfs_acl
snd_hda_codec_hdmi 53248 1
sg 32768 0
sr_mod 24576 0
cdrom 49152 1 sr_mod
sd_mod 40960 2
snd_hda_codec_realtek 69632 1
snd_hda_codec_generic 65536 1 snd_hda_codec_realtek
x86_pkg_temp_thermal 16384 0
intel_powerclamp 20480 0
intel_rapl 20480 0
iosf_mbi 16384 1 intel_rapl
coretemp 16384 0
kvm 421888 0
nls_utf8 16384 1
nls_cp437 20480 1
crct10dif_pclmul 16384 0
crc32_pclmul 16384 0
eeepc_wmi 16384 0
crc32c_intel 24576 1
asus_wmi 24576 1 eeepc_wmi
vfat 20480 1
sparse_keymap 16384 1 asus_wmi
snd_hda_intel 28672 5
fat 65536 1 vfat
ahci 32768 1
rfkill 20480 2 cfg80211,asus_wmi
ghash_clmulni_intel 16384 0
snd_hda_controller 28672 1 snd_hda_intel
libahci 28672 1 ahci
xhci_pci 16384 0
snd_hda_codec 110592 5 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller
libata 180224 2 ahci,libahci
video 20480 1 asus_wmi
radeon 1490944 2
ehci_pci 16384 0
iTCO_wdt 16384 0
aesni_intel 167936 0
iTCO_vendor_support 16384 1 iTCO_wdt
mxm_wmi 16384 0
evdev 20480 26
aes_x86_64 20480 1 aesni_intel
ttm 77824 1 radeon
sb_edac 28672 0
lrw 16384 1 aesni_intel
gf128mul 16384 1 lrw
glue_helper 16384 1 aesni_intel
xhci_hcd 155648 1 xhci_pci
ehci_hcd 73728 1 ehci_pci
drm_kms_helper 98304 1 radeon
snd_hwdep 16384 1 snd_hda_codec
e1000e 212992 0
psmouse 110592 0
snd_pcm 90112 4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_controller
drm 274432 5 ttm,drm_kms_helper,radeon
ablk_helper 16384 1 aesni_intel
r8169 77824 0
snd_timer 28672 1 snd_pcm
cryptd 20480 3 ghash_clmulni_intel,aesni_intel,ablk_helper
ptp 20480 1 e1000e
mii 16384 1 r8169
edac_core 45056 1 sb_edac
pcspkr 16384 0
serio_raw 16384 0
efivars 20480 0
snd 69632 18 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
i2c_algo_bit 16384 1 radeon
scsi_mod 196608 5 sg,usb_storage,libata,sd_mod,sr_mod
mei_me 20480 0
i2c_i801 20480 0
usbcore 196608 6 usb_storage,ehci_hcd,ehci_pci,usbhid,xhci_hcd,xhci_pci
soundcore 16384 2 snd,snd_hda_codec
lpc_ich 24576 0
usb_common 16384 1 usbcore
pps_core 20480 1 ptp
mei 77824 1 mei_me
i2c_core 49152 5 drm,i2c_i801,drm_kms_helper,i2c_algo_bit,radeon
mfd_core 16384 1 lpc_ich
wmi 20480 2 mxm_wmi,asus_wmi
tpm_infineon 20480 0
tpm_tis 20480 0
tpm 32768 2 tpm_tis,tpm_infineon
processor 28672 0
thermal_sys 32768 4 video,intel_powerclamp,processor,x86_pkg_temp_thermal
button 16384 0
fuse 86016 1
parport_pc 28672 0
ppdev 20480 0
lp 20480 0
parport 36864 3 lp,ppdev,parport_pc
autofs4 36864 2
ext4 495616 2
crc16 16384 1 ext4
mbcache 20480 1 ext4
jbd2 86016 1 ext4
shpchp 32768 0
-- /etc/initramfs-tools/modules
-- /etc/kernel-img.conf
# This is a sample /etc/kernel-img.conf file
# See kernel-img.conf(5) for details
# If you want the symbolic link (or image, if move_image is set) to be
# stored elsewhere than / set this variable to the dir where you
# want the symbolic link. Please note that this is not a Boolean
# variable. This may be of help to loadlin users, who may set both
# this and move_image. Defaults to /. This can be used in conjunction
# with all above options except link_in_boot, which would not make
# sense. (If both image_dest and link_in_boot are set, link_in_boot
# overrides).
image_dest = /
# This option manipulates the build link created by recent kernels. If
# the link is a dangling link, and if a the corresponding kernel
# headers appear to have been installed on the system, a new symlink
# shall be created to point to them.
#relink_build_link = YES
# If set, the preinst shall silently try to move /lib/modules/version
# out of the way if it is the same version as the image being
# installed. Use at your own risk.
#clobber_modules = NO
# If set, does not prompt to continue after a depmod problem in the
# postinstall script. This facilitates automated installs, though it
# may mask a problem with the kernel image. A diag‐ nostic is still
# issued. This is unset be default.
# ignore_depmod_err = NO
# These setting are for legacy postinst scripts only. newer postinst
# scripts from the kenrel-package do not use them
do_symlinks = yes
do_bootloader = no
do_initrd=yes
link_in_boot=no
-- /etc/initramfs-tools/initramfs.conf
MODULES=most
BUSYBOX=y
KEYMAP=n
COMPRESS=gzip
DEVICE=
NFSROOT=auto
-- /etc/initramfs-tools/update-initramfs.conf
update_initramfs=yes
backup_initramfs=no
-- /sys/block
loop0
loop1
loop2
loop3
loop4
loop5
loop6
loop7
nvme0n1
sda
sdb
sr0
-- mkinitramfs hooks
/etc/initramfs-tools/hooks/:
/usr/share/initramfs-tools/hooks:
busybox
dmsetup
fsck
fuse
keymap
klibc
kmod
ntfs_3g
resume
thermal
udev
zz-busybox
-- System Information:
Debian Release: 8.0
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.0.2 (SMP w/16 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages initramfs-tools depends on:
ii busybox 1:1.22.0-9+deb8u1
ii cpio 2.11+dfsg-4.1
ii klibc-utils 2.0.4-2
ii kmod 18-3
ii udev 215-17
Versions of packages initramfs-tools recommends:
ii busybox 1:1.22.0-9+deb8u1
Versions of packages initramfs-tools suggests:
ii bash-completion 1:2.1-4
-- no debconf information
Reply to: