398494568a
When a ubuntu/IPA ramdisk is used to boot a baremetal machine with ironic agent-ilo driver, it fails at the point of mounting /proc and /sys. After the vmlinuz(kernel) is started and it tries to load the partitions on ramdisk. It need the directory of "/sys" and "/proc" to mount the corresponding filesystems. In order to fix this issue, the directories of "sys" and "proc" are retained but the subdirectories or files under them are empty. With this change, the directories of "/sys" and "/proc" shows up in the ramdisk and kernel will mount sys and proc filesystems on them respectively. Closes-Bug: #1488445 Change-Id: Iad5d62f373b73789118f23db4c932ea6e9a784c3 Signed-off-by: Gary Duan <duanlg@live.cn>
34 lines
1.3 KiB
Bash
Executable File
34 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then
|
|
set -x
|
|
fi
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
|
|
[ -n "$TARGET_ROOT" ]
|
|
|
|
source $_LIB/img-functions
|
|
|
|
IMAGE_PATH=$(readlink -f $IMAGE_NAME)
|
|
cd $TARGET_ROOT
|
|
|
|
echo "#disabled" > ./tmp/fstab.new
|
|
sudo mv ./tmp/fstab.new ./etc/fstab
|
|
sudo ln -s ./sbin/init ./
|
|
|
|
# Remove python object files, they're not particularly useful for a ramdisk
|
|
sudo find . -name "*.pyc" -or -name "*.pyo" -delete
|
|
|
|
sudo find . -path './sys/*' -prune -o -path './proc/*' -prune -o -path './tmp/*' -prune -o -path './boot/*' -prune -o -path './root/*' -prune -o -path './usr/lib/locale/*' -prune -o -path './usr/share/doc/*' -prune -o -path './usr/share/man/*' -prune -o -path './usr/share/info/*' -prune -o -path './usr/share/licenses/*' -prune -o -path './usr/share/misc/*' -prune -o -print | sudo cpio -o -H newc | gzip > ${IMAGE_PATH}.initramfs
|
|
|
|
select_boot_kernel_initrd $TARGET_ROOT
|
|
sudo cp $BOOTDIR/$KERNEL ${IMAGE_PATH}.kernel
|
|
|
|
# TODO(lucasagomes): Create a hard link for the .vmlinuz file to keep
|
|
# it backward compatible. Remove it after it has been consistent and
|
|
# documented in both places for at least one full OpenStack release cycle
|
|
echo "WARNING: The kernel extension .vmlinuz has been deprecated. Please rely on the file with the extension .kernel instead."
|
|
sudo ln ${IMAGE_PATH}.kernel ${IMAGE_PATH}.vmlinuz
|