Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
dadigang
Ventoy
Commits
24b05c03
Commit
24b05c03
authored
Jun 27, 2022
by
longpanda
Browse files
Fix the bug when booting latest KaOS. (#1696)
parent
6d72617e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
128 additions
and
2 deletions
+128
-2
IMG/cpio/ventoy/hook/kaos/ventoy-disk.sh
IMG/cpio/ventoy/hook/kaos/ventoy-disk.sh
+117
-0
IMG/cpio/ventoy/hook/kaos/ventoy-hook.sh
IMG/cpio/ventoy/hook/kaos/ventoy-hook.sh
+11
-2
No files found.
IMG/cpio/ventoy/hook/kaos/
udev_disk_hoo
k.sh
→
IMG/cpio/ventoy/hook/kaos/
ventoy-dis
k.sh
View file @
24b05c03
...
@@ -19,21 +19,99 @@
...
@@ -19,21 +19,99 @@
.
/ventoy/hook/ventoy-hook-lib.sh
.
/ventoy/hook/ventoy-hook-lib.sh
if
is_ventoy_hook_finished
||
not_ventoy_disk
"
${
1
:0:-1
}
"
;
then
vtlog
"#########
$0
$*
############"
VTPATH_OLD
=
$PATH
;
PATH
=
$BUSYBOX_PATH
:
$VTOY_PATH
/tool:
$PATH
ventoy_os_install_dmsetup_by_fuse
()
{
vtlog
"ventoy_os_install_dmsetup_by_fuse
$*
"
mkdir
-p
$VTOY_PATH
/mnt/fuse
$VTOY_PATH
/mnt/iso
$VTOY_PATH
/mnt/squashfs
vtoydm
-p
-f
$VTOY_PATH
/ventoy_image_map
-d
$1
>
$VTOY_PATH
/ventoy_dm_table
vtoy_fuse_iso
-f
$VTOY_PATH
/ventoy_dm_table
-m
$VTOY_PATH
/mnt/fuse
mount
-t
iso9660
$VTOY_PATH
/mnt/fuse/ventoy.iso
$VTOY_PATH
/mnt/iso
sfsfile
=
$VTOY_PATH
/mnt/iso/kdeos/x86_64/root-image.sqfs
mount
-t
squashfs
$sfsfile
$VTOY_PATH
/mnt/squashfs
kVer
=
$(
uname
-r
)
KoName
=
$(
ls
$VTOY_PATH
/mnt/squashfs/lib/modules/
$kVer
/kernel/drivers/md/dm-mod.ko
*
)
vtlog
"insmod
$KoName
"
if
echo
$KoName
|
grep
-q
'\.zst'
;
then
zstdcat
$KoName
>
$VTOY_PATH
/dm-mod.ko
insmod
$VTOY_PATH
/dm-mod.ko
else
insmod
$KoName
fi
umount
$VTOY_PATH
/mnt/squashfs
umount
$VTOY_PATH
/mnt/iso
umount
$VTOY_PATH
/mnt/fuse
}
if
is_ventoy_hook_finished
;
then
exit
0
exit
0
fi
fi
VTPATH_OLD
=
$PATH
;
PATH
=
$BUSYBOX_PATH
:
$VTOY_PATH
/tool:
$PATH
wait_for_usb_disk_ready
modprobe fuse
vtdiskname
=
$(
get_ventoy_disk_name
)
mkdir
-p
$VTOY_PATH
/mnt/fuse
$VTOY_PATH
/mnt/iso
if
[
"
$vtdiskname
"
=
"unknown"
]
;
then
vtlog
"ventoy disk not found"
exit
0
fi
vtoydm
-p
-f
$VTOY_PATH
/ventoy_image_map
-d
"/dev/
${
1
:0:-1
}
"
>
$VTOY_PATH
/ventoy_dm_table
if
grep
-q
'device-mapper'
/proc/devices
;
then
vtoy_fuse_iso
-f
$VTOY_PATH
/ventoy_dm_table
-m
$VTOY_PATH
/mnt/fuse
vtlog
"device-mapper module exist"
mount
-t
iso9660
$VTOY_PATH
/mnt/fuse/ventoy.iso
$VTOY_PATH
/mnt/iso
else
ventoy_os_install_dmsetup_by_fuse
$vtdiskname
fi
# OK finish
ventoy_udev_disk_common_hook
"
${
vtdiskname
#/dev/
}
2"
"noreplace"
set_ventoy_hook_finish
blkdev_num
=
$(
$VTOY_PATH
/tool/dmsetup
ls
|
grep
ventoy |
sed
's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/'
)
vtDM
=
$(
ventoy_find_dm_id
${
blkdev_num
}
)
vtlog
"blkdev_num=
$blkdev_num
vtDM=
$vtDM
..."
while
[
-n
"Y"
]
;
do
if
[
-b
/dev/
$vtDM
]
;
then
break
else
sleep
0.3
fi
done
if
[
-n
"
$1
"
]
;
then
vtlog
"ln -s /dev/
$vtDM
$1
"
if
[
-e
"
$1
"
]
;
then
vtlog
"
$1
already exist"
else
ln
-s
/dev/
$vtDM
"
$1
"
fi
else
vtLABEL
=
$(
$BUSYBOX_PATH
/blkid /dev/
$vtDM
|
$SED
's/.*LABEL="\([^"]*\)".*/\1/'
)
vtlog
"vtLABEL is
$vtLABEL
"
if
[
-z
"
$vtLABEL
"
]
;
then
vtLABEL
=
$(
$SED
"s/.*label=
\(
[^ ]*
\)
/
\1
/"
/proc/cmdline
)
vtlog
"vtLABEL is
$vtLABEL
from cmdline"
fi
if
[
-e
"/dev/disk/by-label/
$vtLABEL
"
]
;
then
vtlog
"
$1
already exist"
else
ln
-s
/dev/
$vtDM
"/dev/disk/by-label/
$vtLABEL
"
fi
fi
PATH
=
$VTPATH_OLD
PATH
=
$VTPATH_OLD
# OK finish
set_ventoy_hook_finish
IMG/cpio/ventoy/hook/kaos/ventoy-hook.sh
View file @
24b05c03
...
@@ -2,5 +2,14 @@
...
@@ -2,5 +2,14 @@
.
$VTOY_PATH
/hook/ventoy-os-lib.sh
.
$VTOY_PATH
/hook/ventoy-os-lib.sh
ventoy_systemd_udevd_work_around
if
$GREP
-q
'^"$mount_handler"'
/init
;
then
ventoy_add_udev_rule
"
$VTOY_PATH
/hook/kaos/udev_disk_hook.sh %k"
echo
'use mount_handler1 ...'
>>
$VTLOG
$SED
"/^
\"\$
mount_handler
\"
/i
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/kaos/ventoy-disk.sh"
-i
/init
elif
$GREP
-q
'^$mount_handler'
/init
;
then
echo
'use mount_handler2 ...'
>>
$VTLOG
$SED
"/^
\$
mount_handler/i
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/kaos/ventoy-disk.sh"
-i
/init
fi
if
[
-f
$VTOY_PATH
/ventoy_persistent_map
]
;
then
$SED
"1 aexport cow_label=vtoycow"
-i
/init
fi
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment