[OE-core] [PATCH v2 2/2] install*.sh: add short sleep after parted commands
California Sullivan
california.l.sullivan at intel.com
Tue Nov 21 23:02:09 UTC 2017
I wasn't able to install to my Optane SSD due to the following error:
Formatting /dev/nvme0n1p1 to vfat...
mkfs.fat 4.1 (2017-01-24)
mkfs.vfat: unable to open /dev/nvme0n1p1: No such file or directory
Target install-efi failed
A couple lines later I see:
[ 10.265401] nvme0n1: p1 p2 p3
Then looking at the device itself after booting from a USB stick:
root at intel-corei7-64: ~# ls /dev/nvme0n1*
/dev/nvme0n1 /dev/nvme0n1p1 /dev/nvme0n1p2 /dev/nvme0n1p3
So it looks like the parted commands return before the device node is
actually created.
Work around this issue by waiting for device nodes for a short duration.
Signed-off-by: California Sullivan <california.l.sullivan at intel.com>
---
v2: sleep conditionally for up to three seconds instead of one second
unconditionally. This makes it so if the device nodes are available
immediately, people don't have to wait, but a system has up to three
seconds to create them before failing.
meta/recipes-core/initrdscripts/files/init-install-efi.sh | 7 +++++++
meta/recipes-core/initrdscripts/files/init-install.sh | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/meta/recipes-core/initrdscripts/files/init-install-efi.sh b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
index 5ad3a60..706418f 100644
--- a/meta/recipes-core/initrdscripts/files/init-install-efi.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
@@ -186,6 +186,13 @@ parted ${device} mkpart swap linux-swap $swap_start 100%
parted ${device} print
+echo "Waiting for device nodes..."
+C=0
+while [ $C -ne 3 ] && [ ! -e $bootfs -o ! -e $rootfs -o ! -e $swap ]; do
+ C=$(( C + 1 ))
+ sleep 1
+done
+
echo "Formatting $bootfs to vfat..."
mkfs.vfat $bootfs
diff --git a/meta/recipes-core/initrdscripts/files/init-install.sh b/meta/recipes-core/initrdscripts/files/init-install.sh
index 1cac806..dade059 100644
--- a/meta/recipes-core/initrdscripts/files/init-install.sh
+++ b/meta/recipes-core/initrdscripts/files/init-install.sh
@@ -211,6 +211,13 @@ parted ${device} mkpart $pname linux-swap $swap_start 100%
parted ${device} print
+echo "Waiting for device nodes..."
+C=0
+while [ $C -ne 3 ] && [ ! -e $bootfs -o ! -e $rootfs -o ! -e $swap ]; do
+ C=$(( C + 1 ))
+ sleep 1
+done
+
echo "Formatting $bootfs to ext3..."
mkfs.ext3 $bootfs
--
2.9.5
More information about the Openembedded-core
mailing list