[Error Msg]
++ set_initrd
++ initrd=initrd
++ cat
<<< hang here
[Root Cause]
Function set_initrd() have follow line:
cat $initrds > $initrd
when $initrds is null, the script will hang when execute cat command.
[how]
before: [ -n "$initrds" ] || exit
after: [ -n "$initrds" ] && cat $initrds > initrd || exit
[why]
1. before execute cat command, check wether initrds is null.
2. initrd is a brief file name, it can be used directly, so remove $initrd, just us initrd.
3. set_initrd() is unnecessary, so remove.
Signed-off-by: Liu Yinsi <liuyinsi(a)163.com>
---
providers/qemu/kvm.sh | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/providers/qemu/kvm.sh b/providers/qemu/kvm.sh
index 854e913..52b10f2 100755
--- a/providers/qemu/kvm.sh
+++ b/providers/qemu/kvm.sh
@@ -60,13 +60,7 @@ check_option_value()
# debian has both qemu-system-x86_64 and qemu-system-riscv64 command
[[ $kernel =~ 'riscv64' ]] && qemu=qemu-system-riscv64
- [ -n "$initrds" ] || exit
-}
-
-set_initrd()
-{
- initrd=initrd
- cat $initrds > $initrd
+ [ -n "$initrds" ] && cat $initrds > initrd || exit
}
set_bios()
@@ -125,7 +119,7 @@ public_option()
kvm=(
$qemu
-kernel $kernel
- -initrd $initrd
+ -initrd initrd
-smp $nr_cpu
-m $memory
-rtc base=localtime
@@ -183,7 +177,6 @@ run_qemu()
set_options()
{
- set_initrd
set_bios
set_helper
set_nic
--
2.23.0