** Description changed:

- [Impact] 
- The initramfs-tools hook-functions script cannot translate nvmeXnYpZ to 
nvmeXnY block device, so it's failing and not building the initram disk.
+ [Impact]
  
- Upstream solution is composed for at least 2 patches (it's a series, but
+ When creating the initramfs image, mkinitramfs has multiple options on
+ how to include modules. The default (and most common) one is the
+ "MODULES=most", which includes the majority of filesystem modules and
+ all the block device drivers. One other option is "MODULES=dep", which
+ tries to descend in the sysfs hierarchy and guess modules to add, with
+ the goal of reduce the size of initramfs.
+ 
+ For the MODULES=dep case, the initramfs-tools hook-functions script
+ cannot translate nvmeXnYpZ to nvmeXnY block device, so it's failing in
+ the sysfs lookup, so it does not build the initram disk.
+ 
+ Upstream solution is composed of at least 2 patches (it's a series, but
  the 2 below are really the needed ones):
  
  commit 3cb744c9
  Author: Ben Hutchings <b...@decadent.org.uk>
  hook-functions: Rewrite block device sysfs lookup to be generic
  
  commit 8ac52dc0
  Author: Ben Hutchings <b...@decadent.org.uk>
  hook-functions: Include modules for all components of a multi-disk device
  
- Instead of doing the backport, which is huge, we added another sed 
substitution: currently the script has substitutions for sdX and hdX, in order 
to convert sda1 to sda, for example. The new substitution converts nvmeXnYpZ to 
nvmeXnY.
- It's less intrusive than the full backport, since this is a SRU to Trusty 
only.
+ Instead of doing the huge backport, we added another sed substitution: 
currently the script has substitutions for sdX and hdX, in order to convert 
sda1 to sda, for example. The new substitution converts nvmeXnYpZ to nvmeXnY.
+ It's less intrusive than the full backport, since this is a minimal SRU to 
Trusty only.
  
  
  [Test Case]
- To be added.
+ 1. Install Trusty with rootfs in a multi-disk(md) array composed of two nvme 
partitions - in my tests, I've used a RAID1.
+ 
+ (lsblk output of my test env:
+ 
+ nvme0n1     259:0    0    10G  0 disk  
+ └─nvme0n1p1 259:1    0    10G  0 part  
+   └─md0       9:0    0    10G  0 raid1 /
+ nvme1n1     259:2    0    10G  0 disk  
+ └─nvme1n1p1 259:3    0    10G  0 part  
+   └─md0       9:0    0    10G  0 raid1 /
+ )
  
  
- [Regression Potential] 
- If the sed expression was somewhat broken, we could have an issue generating 
initiramfs for generic block devices, like regular HDDs.
+ 2. Once system is booted, modify the "/etc/initramfs-tools/initramfs.conf", 
replacing "MODULES=most" to "MODULES=dep".
+ 
+ 3. Update your initramfs by running something like:
+ "update-initramfs -u -k <your kernel version>"
+ 
+ The initramfs creating procedure will fail, unless the patch from this
+ LP is present.
+ 
+ 
+ [Regression Potential]
+ If the sed expression was somewhat broken, we could have an issue generating 
initiramfs when MODULES is set to "dep", even for generic block devices (like 
regular HDDs).
  
  
  [Other Info]
  This issue is based on Debian bug #785147: 
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785147

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1771557

Title:
  NVMe boot drives not supported - failing in generating initramfs

To manage notifications about this bug go to:
https://bugs.launchpad.net/initramfs-tools/+bug/1771557/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to