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
a5c70651
Commit
a5c70651
authored
Jun 15, 2020
by
longpanda
Browse files
1.0.13 release
parent
785255b6
Changes
55
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
488 additions
and
138 deletions
+488
-138
GRUB2/MOD_SRC/grub-2.04/install.sh
GRUB2/MOD_SRC/grub-2.04/install.sh
+2
-2
IMG/cpio/ventoy/hook/clear/ventoy-hook.sh
IMG/cpio/ventoy/hook/clear/ventoy-hook.sh
+7
-1
IMG/cpio/ventoy/hook/gentoo/ventoy-hook.sh
IMG/cpio/ventoy/hook/gentoo/ventoy-hook.sh
+4
-6
IMG/cpio/ventoy/hook/kiosk/ventoy-disk.sh
IMG/cpio/ventoy/hook/kiosk/ventoy-disk.sh
+70
-0
IMG/cpio/ventoy/hook/kiosk/ventoy-hook.sh
IMG/cpio/ventoy/hook/kiosk/ventoy-hook.sh
+22
-0
IMG/cpio/ventoy/hook/mageia/ventoy-hook.sh
IMG/cpio/ventoy/hook/mageia/ventoy-hook.sh
+24
-2
IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh
IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh
+69
-0
IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-start.sh
IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-start.sh
+9
-18
IMG/cpio/ventoy/hook/rhel6/udev_disk_hook.sh
IMG/cpio/ventoy/hook/rhel6/udev_disk_hook.sh
+1
-1
IMG/cpio/ventoy/hook/rhel6/ventoy-hook.sh
IMG/cpio/ventoy/hook/rhel6/ventoy-hook.sh
+0
-1
IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh
IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh
+16
-3
IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh
IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh
+14
-3
IMG/cpio/ventoy/hook/rhel7/ventoy-timeout.sh
IMG/cpio/ventoy/hook/rhel7/ventoy-timeout.sh
+4
-3
IMG/cpio/ventoy/init
IMG/cpio/ventoy/init
+11
-1
IMG/cpio/ventoy/ventoy.sh
IMG/cpio/ventoy/ventoy.sh
+4
-1
INSTALL/EFI/BOOT/grubx64_real.efi
INSTALL/EFI/BOOT/grubx64_real.efi
+0
-0
INSTALL/grub/debug.cfg
INSTALL/grub/debug.cfg
+57
-0
INSTALL/grub/fonts/ascii.pf2
INSTALL/grub/fonts/ascii.pf2
+0
-0
INSTALL/grub/fonts/unicode.pf2
INSTALL/grub/fonts/unicode.pf2
+0
-0
INSTALL/grub/grub.cfg
INSTALL/grub/grub.cfg
+174
-96
No files found.
GRUB2/MOD_SRC/grub-2.04/install.sh
View file @
a5c70651
...
...
@@ -12,10 +12,10 @@ make install
PATH
=
$PATH
:
$VT_DIR
/GRUB2/INSTALL/bin/:
$VT_DIR
/GRUB2/INSTALL/sbin/
net_modules_legacy
=
"net tftp http"
all_modules_legacy
=
"date drivemap blocklist lspci pci ext2 xfs ventoy chain read halt iso9660 linux16 test true sleep reboot echo videotest videoinfo videotest_checksum video_colors video_cirrus video_bochs vga vbe video_fb font video gettext extcmd terminal linux minicmd help configfile tr trig boot biosdisk disk ls tar squash4 password_pbkdf2 all_video png jpeg part_msdos fat exfat ntfs loopback gzio normal udf gfxmenu gfxterm gfxterm_background gfxterm_menu"
all_modules_legacy
=
"date drivemap blocklist
ntldr search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio
lspci pci ext2 xfs ventoy chain read halt iso9660 linux16 test true sleep reboot echo videotest videoinfo videotest_checksum video_colors video_cirrus video_bochs vga vbe video_fb font video gettext extcmd terminal linux minicmd help configfile tr trig boot biosdisk disk ls tar squash4 password_pbkdf2 all_video png jpeg part_msdos fat exfat ntfs loopback gzio normal udf gfxmenu gfxterm gfxterm_background gfxterm_menu"
net_modules_uefi
=
"efinet net tftp http"
all_modules_uefi
=
"blocklist ventoy test ext2 xfs read halt sleep serial terminfo png password_pbkdf2 gcry_sha512 pbkdf2 part_gpt part_msdos ls tar squash4 loopback part_apple minicmd diskfilter linux relocator jpeg iso9660 udf hfsplus halt acpi mmap gfxmenu video_colors trig bitmap_scale gfxterm bitmap font fat exfat ntfs fshelp efifwsetup reboot echo configfile normal terminal gettext chain priority_queue bufio datetime cat extcmd crypto gzio boot all_video efi_gop efi_uga video_bochs video_cirrus video video_fb gfxterm_background gfxterm_menu"
all_modules_uefi
=
"blocklist ventoy test
search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio
ext2 xfs read halt sleep serial terminfo png password_pbkdf2 gcry_sha512 pbkdf2 part_gpt part_msdos ls tar squash4 loopback part_apple minicmd diskfilter linux relocator jpeg iso9660 udf hfsplus halt acpi mmap gfxmenu video_colors trig bitmap_scale gfxterm bitmap font fat exfat ntfs fshelp efifwsetup reboot echo configfile normal terminal gettext chain priority_queue bufio datetime cat extcmd crypto gzio boot all_video efi_gop efi_uga video_bochs video_cirrus video video_fb gfxterm_background gfxterm_menu"
if
[
"
$1
"
=
"uefi"
]
;
then
...
...
IMG/cpio/ventoy/hook/clear/ventoy-hook.sh
View file @
a5c70651
...
...
@@ -19,4 +19,10 @@
.
$VTOY_PATH
/hook/ventoy-os-lib.sh
$SED
"/find_and_mount_installer *
$/
i
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/clear/disk-hook.sh"
-i
/init
if
$GREP
-q
find_and_mount_installer /init
;
then
echo
"find_and_mount_installer"
>>
$VTLOG
$SED
"/find_and_mount_installer *
$/
i
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/clear/disk-hook.sh"
-i
/init
else
echo
"find_installer"
>>
$VTLOG
$SED
"/
\$
.*find_installer/i
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/clear/disk-hook.sh"
-i
/init
fi
IMG/cpio/ventoy/hook/gentoo/ventoy-hook.sh
View file @
a5c70651
...
...
@@ -19,13 +19,11 @@
.
$VTOY_PATH
/hook/ventoy-os-lib.sh
if
[
-d
/etc/udev/rules.d
]
||
[
-d
/lib/udev/rules.d
]
;
then
if
$GREP
-q
kaspersky /proc/version
;
then
$SED
"/sysresccd_stage1_normal[^(]*
$/
i
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/gentoo/disk_hook.sh"
-i
/init
elif
[
-d
/etc/udev/rules.d
]
||
[
-d
/lib/udev/rules.d
]
;
then
ventoy_systemd_udevd_work_around
ventoy_add_udev_rule
"
$VTOY_PATH
/hook/default/udev_disk_hook.sh %k noreplace"
else
if
$GREP
-q
kaspersky /proc/version
;
then
$SED
"/sysresccd_stage1_normal[^(]*
$/
i
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/gentoo/disk_hook.sh"
-i
/init
else
$SED
"/mdev *-s/a
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/gentoo/disk_hook.sh"
-i
/init
fi
$SED
"/mdev *-s/a
\
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/gentoo/disk_hook.sh"
-i
/init
fi
IMG/cpio/ventoy/hook/kiosk/ventoy-disk.sh
0 → 100644
View file @
a5c70651
#!/ventoy/busybox/sh
#************************************************************************************
# Copyright (c) 2020, longpanda <admin@ventoy.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
#************************************************************************************
.
/ventoy/hook/ventoy-hook-lib.sh
VTPATH_OLD
=
$PATH
;
PATH
=
$BUSYBOX_PATH
:
$VTOY_PATH
/tool:
$PATH
ventoy_os_install_dmsetup_by_unsquashfs
()
{
vtlog
"ventoy_os_install_dmsetup_by_unsquashfs
$*
"
vtKerVer
=
$(
uname
-r
)
vtKoPo
=
$(
ventoy_get_module_postfix
)
vtlog
"vtKerVer=
$vtKerVer
vtKoPo=
$vtKoPo
"
vtoydm
-i
-f
$VTOY_PATH
/ventoy_image_map
-d
$1
>
$VTOY_PATH
/iso_file_list
vtline
=
$(
grep
'[-][-] .*kernel.xzm '
$VTOY_PATH
/iso_file_list
)
sector
=
$(
echo
$vtline
|
awk
'{print $(NF-1)}'
)
length
=
$(
echo
$vtline
|
awk
'{print $NF}'
)
vtlog
"vtline=
$vtline
sector=
$sector
length=
$length
"
vtoydm
-e
-f
$VTOY_PATH
/ventoy_image_map
-d
$1
-s
$sector
-l
$length
-o
$VTOY_PATH
/kernel.xzm
mkdir
-p
$VTOY_PATH
/sqfs
mount
$VTOY_PATH
/kernel.xzm
$VTOY_PATH
/sqfs
dmModPath
=
"/lib/modules/
$vtKerVer
/kernel/drivers/md/dm-mod.
$vtKoPo
"
if
[
-e
$VTOY_PATH
/sqfs
${
dmModPath
}
]
;
then
vtlog
"success
$VTOY_PATH
/sqfs
${
dmModPath
}
"
insmod
$VTOY_PATH
/sqfs
${
dmModPath
}
else
vterr
"failed
$VTOY_PATH
/sqfs
${
dmModPath
}
"
false
fi
umount
$VTOY_PATH
/sqfs
rm
-f
$VTOY_PATH
/kernel.xzm
}
wait_for_usb_disk_ready
vtdiskname
=
$(
get_ventoy_disk_name
)
if
[
"
$vtdiskname
"
=
"unknown"
]
;
then
vtlog
"ventoy disk not found"
PATH
=
$VTPATH_OLD
exit
0
fi
ventoy_os_install_dmsetup_by_unsquashfs
$vtdiskname
ventoy_udev_disk_common_hook
"
${
vtdiskname
#/dev/
}
2"
"noreplace"
PATH
=
$VTPATH_OLD
IMG/cpio/ventoy/hook/kiosk/ventoy-hook.sh
0 → 100644
View file @
a5c70651
#!/ventoy/busybox/sh
#************************************************************************************
# Copyright (c) 2020, longpanda <admin@ventoy.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
#************************************************************************************
.
$VTOY_PATH
/hook/ventoy-os-lib.sh
$SED
'/^ *search [^(]*$/i\ /ventoy/busybox/sh /ventoy/hook/kiosk/ventoy-disk.sh'
-i
/init
IMG/cpio/ventoy/hook/mageia/ventoy-hook.sh
View file @
a5c70651
#!/ventoy/busybox/sh
#************************************************************************************
# Copyright (c) 2020, longpanda <admin@ventoy.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
#************************************************************************************
.
$VTOY_PATH
/hook/ventoy-os-lib.sh
ventoy_systemd_udevd_work_around
#ventoy_systemd_udevd_work_around
#ventoy_add_udev_rule "$VTOY_PATH/hook/mageia/udev_disk_hook.sh %k noreplace"
ventoy_set_inotify_script mageia/ventoy-inotifyd-hook.sh
$BUSYBOX_PATH
/cp
-a
$VTOY_PATH
/hook/mageia/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/99-ventoy-inotifyd-start.sh
ventoy_add_udev_rule
"
$VTOY_PATH
/hook/mageia/udev_disk_hook.sh %k noreplace"
IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh
0 → 100644
View file @
a5c70651
#!/ventoy/busybox/sh
#************************************************************************************
# Copyright (c) 2020, longpanda <admin@ventoy.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
#************************************************************************************
.
/ventoy/hook/ventoy-hook-lib.sh
if
is_ventoy_hook_finished
;
then
exit
0
fi
vtlog
"##### INOTIFYD:
$2
/
$3
is created ..."
VTPATH_OLD
=
$PATH
;
PATH
=
$BUSYBOX_PATH
:
$VTOY_PATH
/tool:
$PATH
if
is_inotify_ventoy_part
$3
;
then
vtlog
"find ventoy partition ..."
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/default/udev_disk_hook.sh
$3
noreplace
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
}
)
vtLABEL
=
$(
$BUSYBOX_PATH
/blkid /dev/
$vtDM
|
$AWK
'{print $2}'
|
$SED
's/.*"\(.*\)".*/\1/'
)
vtlog
"blkdev_num=
$blkdev_num
vtDM=
$vtDM
label
$vtLABEL
..."
if
[
-n
"
$vtLABEL
"
]
;
then
$BUSYBOX_PATH
/mkdir
-p
/dev/disk/by-label/
ln
-s
/dev/
$vtDM
/dev/disk/by-label/
$vtLABEL
fi
#
# cheatcode for mageia
#
# From mageia/soft/drakx/mdk-stage1 source code, we see that the stage1 binary will search
# /tmp/syslog file to determin whether there is a DAC960 cdrom in the system.
# So we insert some string to /tmp/syslog file to cheat the stage1 program.
#
$BUSYBOX_PATH
/mkdir
-p
/dev/rd
ventoy_copy_device_mapper
"/dev/rd/ventoy"
echo
'ventoy cheatcode /dev/rd/ventoy: model'
>>
/tmp/syslog
if
[
-e
/sbin/mgalive-root
]
;
then
vtlog
"set mgalive-root ..."
$BUSYBOX_PATH
/cp
-a
$BUSYBOX_PATH
/blkid /sbin/blkid
$BUSYBOX_PATH
/mkdir
-p
/dev/mapper
ln
-s
/dev/
$vtDM
/dev/mapper/ventoy
/sbin/mgalive-root /dev/dm-0
fi
set_ventoy_hook_finish
fi
PATH
=
$VTPATH_OLD
IMG/cpio/ventoy/hook/mageia/
udev_disk_hook
.sh
→
IMG/cpio/ventoy/hook/mageia/
ventoy-inotifyd-start
.sh
View file @
a5c70651
...
...
@@ -19,22 +19,13 @@
.
/ventoy/hook/ventoy-hook-lib.sh
if
is_ventoy_hook_finished
||
not_ventoy_disk
"
${
1
:0:-1
}
"
;
then
exit
0
fi
ventoy_udev_disk_common_hook
$*
vtHook
=
$(
$CAT
$VTOY_PATH
/inotifyd-hook-script.txt
)
#
# cheatcode for mageia
#
# From mageia/soft/drakx/mdk-stage1 source code, we see that the stage1 binary will search
# /tmp/syslog file to determin whether there is a DAC960 cdrom in the system.
# So we insert some string to /tmp/syslog file to cheat the stage1 program.
#
$BUSYBOX_PATH
/mkdir
-p
/dev/rd
ventoy_copy_device_mapper
"/dev/rd/ventoy"
echo
'ventoy cheatcode /dev/rd/ventoy: model'
>>
/tmp/syslog
# OK finish
set_ventoy_hook_finish
vtdisk
=
$(
get_ventoy_disk_name
)
if
[
"
$vtdisk
"
=
"unknown"
]
;
then
vtlog
"... start inotifyd listen
$vtHook
..."
$BUSYBOX_PATH
/nohup
$VTOY_PATH
/tool/inotifyd
$vtHook
/dev:n 2>&- &
else
vtlog
"...
$vtdisk
already exist ..."
$BUSYBOX_PATH
/sh
$vtHook
n /dev
"
${
vtdisk
#/dev/
}
2"
fi
IMG/cpio/ventoy/hook/rhel6/udev_disk_hook.sh
View file @
a5c70651
...
...
@@ -64,7 +64,7 @@ fi
#some distro add there repo file to /etc/anaconda.repos.d/ which will cause error during installation
$BUSYBOX_PATH
/nohup
$VTOY_PATH
/tool/inotifyd
$VTOY_PATH
/hook/rhel6/anaconda-repo-listen.sh /etc/anaconda.repos.d:n &
#
$BUSYBOX_PATH/nohup $VTOY_PATH/tool/inotifyd $VTOY_PATH/hook/rhel6/anaconda-repo-listen.sh /etc/anaconda.repos.d:n &
ventoy_udev_disk_common_hook
$*
"noreplace"
...
...
IMG/cpio/ventoy/hook/rhel6/ventoy-hook.sh
View file @
a5c70651
...
...
@@ -22,6 +22,5 @@
$BUSYBOX_PATH
/mkdir
-p
/etc/anaconda.repos.d /mnt/ventoy
ventoy_print_yum_repo
"ventoy"
"file:///mnt/ventoy"
>
/etc/anaconda.repos.d/ventoy.repo
ventoy_add_udev_rule
"
$VTOY_PATH
/hook/rhel6/udev_disk_hook.sh %k"
ventoy_add_kernel_udev_rule
"loop7"
"
$VTOY_PATH
/hook/rhel6/udev_disk_hook.sh %k"
IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh
View file @
a5c70651
...
...
@@ -31,7 +31,13 @@ else
VTKS
=
"inst.ks=hd:/dev/dm-0:
$vtRawKs
"
break
fi
done
if
echo
$vtParam
|
$GREP
-q
'^ks=.*:/'
;
then
vtRawKs
=
$(
echo
$vtParam
|
$AWK
-F
:
'{print $NF}'
)
VTKS
=
"ks=hd:/dev/dm-0:
$vtRawKs
"
break
fi
done
fi
echo
"VTKS=
$VTKS
"
>>
$VTLOG
...
...
@@ -44,8 +50,15 @@ fi
ventoy_set_inotify_script rhel7/ventoy-inotifyd-hook.sh
$BUSYBOX_PATH
/cp
-a
$VTOY_PATH
/hook/rhel7/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/01-ventoy-inotifyd-start.sh
$BUSYBOX_PATH
/cp
-a
$VTOY_PATH
/hook/rhel7/ventoy-timeout.sh /lib/dracut/hooks/initqueue/timeout/01-ventoy-timeout.sh
#Fedora
if
$BUSYBOX_PATH
/which dmsquash-live-root
>
/dev/null
;
then
vtPriority
=
99
else
vtPriority
=
01
fi
$BUSYBOX_PATH
/cp
-a
$VTOY_PATH
/hook/rhel7/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/
${
vtPriority
}
-ventoy-inotifyd-start
.sh
$BUSYBOX_PATH
/cp
-a
$VTOY_PATH
/hook/rhel7/ventoy-timeout.sh /lib/dracut/hooks/initqueue/timeout/
${
vtPriority
}
-ventoy-timeout
.sh
# suppress write protected mount warning
if
[
-e
/usr/sbin/anaconda-diskroot
]
;
then
...
...
IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh
View file @
a5c70651
...
...
@@ -28,6 +28,16 @@ vtlog "##### INOTIFYD: $2/$3 is created ..."
VTPATH_OLD
=
$PATH
;
PATH
=
$BUSYBOX_PATH
:
$VTOY_PATH
/tool:
$PATH
if
is_inotify_ventoy_part
$3
;
then
vtGenRulFile
=
'/etc/udev/rules.d/99-live-squash.rules'
if
[
-e
$vtGenRulFile
]
&&
$GREP
-q
dmsquash
$vtGenRulFile
;
then
vtScript
=
$(
$GREP
-m1
'RUN.='
$vtGenRulFile
|
$AWK
-F
'RUN.='
'{print $2}'
|
$SED
's/"\(.*\)".*/\1/'
)
vtlog
"vtScript=
$vtScript
"
$vtScript
else
vtlog
"
$vtGenRulFile
not exist..."
fi
vtlog
"find ventoy partition ..."
$BUSYBOX_PATH
/sh
$VTOY_PATH
/hook/default/udev_disk_hook.sh
$3
noreplace
...
...
@@ -41,9 +51,10 @@ if is_inotify_ventoy_part $3; then
ventoy_swap_device /dev/dm-0 /dev/
$vtDM
fi
vtlog
"set anaconda-diskroot ..."
/sbin/anaconda-diskroot /dev/dm-0
#/sbin/initqueue --settled --onetime --name anaconda-diskroot anaconda-diskroot /dev/dm-0
if
[
-e
/sbin/anaconda-diskroot
]
;
then
vtlog
"set anaconda-diskroot ..."
/sbin/anaconda-diskroot /dev/dm-0
fi
set_ventoy_hook_finish
fi
...
...
IMG/cpio/ventoy/hook/rhel7/ventoy-timeout.sh
View file @
a5c70651
...
...
@@ -26,8 +26,9 @@ VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
blkdev_num
=
$(
dmsetup
ls
|
grep
ventoy |
sed
's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/'
)
vtDM
=
$(
ventoy_find_dm_id
${
blkdev_num
}
)
vtlog
"diskroot
$vtDM
..."
/sbin/anaconda-diskroot /dev/dm-0
#/sbin/initqueue --settled --onetime --name anaconda-diskroot anaconda-diskroot /dev/$vtDM
if
[
-e
/sbin/anaconda-diskroot
]
;
then
vtlog
"set anaconda-diskroot ..."
/sbin/anaconda-diskroot /dev/dm-0
fi
PATH
=
$VTPATH_OLD
IMG/cpio/ventoy/init
View file @
a5c70651
...
...
@@ -51,7 +51,17 @@ fi
# #
####################################################################
cd
/
rm
-rf
/init /linuxrc /sbin /dev/ /root
rm
-rf
/init /linuxrc /dev/ /root
vtSbinFileNum
=
$(
ls
-1
/sbin |
wc
-l
)
if
[
$vtSbinFileNum
-eq
1
]
;
then
echo
"remove whole sbin directory"
>>
$VTLOG
rm
-rf
/sbin
else
echo
"remove only sbin/init file"
>>
$VTLOG
ls
-l
/sbin
>>
$VTLOG
rm
-f
/sbin/init
fi
ventoy_is_initrd_ramdisk
()
{
#As I known, PCLinuxOS use ramdisk
...
...
IMG/cpio/ventoy/ventoy.sh
View file @
a5c70651
...
...
@@ -87,6 +87,10 @@ ventoy_get_os_type() {
elif
$EGREP
-q
'archlinux|ARCH'
/proc/version
;
then
echo
'arch'
;
return
# kiosk
elif
$EGREP
-q
'kiosk'
/proc/version
;
then
echo
'kiosk'
;
return
# gentoo
elif
$EGREP
-q
'[Gg]entoo'
/proc/version
;
then
echo
'gentoo'
;
return
...
...
@@ -215,7 +219,6 @@ if [ "$VTOY_BREAK_LEVEL" = "03" ] || [ "$VTOY_BREAK_LEVEL" = "13" ]; then
fi
####################################################################
# #
# Step 4 : Hand over to real init #
...
...
INSTALL/EFI/BOOT/grubx64_real.efi
View file @
a5c70651
No preview for this file type
INSTALL/grub/debug.cfg
0 → 100644
View file @
a5c70651
submenu 'Check plugin json configuration (ventoy.json)' {
menuentry 'Check global control plugin configuration' {
set pager=1
vt_check_plugin_json $iso_path control $iso_path
echo -e "\npress ENTER to exit ..."
read vtInputKey
unset pager
}
menuentry 'Check theme plugin configuration' {
set pager=1
vt_check_plugin_json $iso_path theme $iso_path
echo -e "\npress ENTER to exit ..."
read vtInputKey
unset pager
}
menuentry 'Check auto install plugin configuration' {
set pager=1
vt_check_plugin_json $iso_path auto_install $iso_path
echo -e "\npress ENTER to exit ..."
read vtInputKey
unset pager
}
menuentry 'Check persistence plugin configuration' {
set pager=1
vt_check_plugin_json $iso_path persistence $iso_path
echo -e "\n############### dump persistence ###############"
vt_dump_persistence
echo -e "\npress ENTER to exit ..."
read vtInputKey
unset pager
}
menuentry 'Check menu alias plugin configuration' {
set pager=1
vt_check_plugin_json $iso_path menu_alias $iso_path
echo -e "\npress ENTER to exit ..."
read vtInputKey
unset pager
}
menuentry 'Return to previous menu [Esc]' VTOY_RET {
echo 'Return ...'
}
}
menuentry 'Return to previous menu [Esc]' VTOY_RET {
echo 'Return ...'
}
INSTALL/grub/fonts/ascii.pf2
View file @
a5c70651
No preview for this file type
INSTALL/grub/fonts/unicode.pf2
0 → 100644
View file @
a5c70651
File added
INSTALL/grub/grub.cfg
View file @
a5c70651
...
...
@@ -16,60 +16,91 @@
#
#************************************************************************************
function ventoy_pause {
if [ -n "${vtdebug_flag}" ]; then
echo "press Enter to continue ......"
read vtTmpPause
fi
}
function ventoy_debug_pause {
if [ -n "${vtdebug_flag}" ]; then
echo "press Enter to continue ......"
read vtTmpPause
fi
}
function ventoy_power {
configfile ($root)/grub/power.cfg
configfile $prefix/power.cfg
}
function ventoy_diagnosis {
configfile $prefix/debug.cfg
}
function ventoy_localboot {
configfile $prefix/localboot.cfg
}
function get_os_type {
set vtoy_os=Linux
for file in "efi/microsoft" "sources/boot.wim" "boot/bcd" "bootmgr.efi" "boot/etfsboot.com" "BOOT/etfsboot.com"; do
if [ -e $1/$file ]; then
set vtoy_os=Linux
for file in "efi/microsoft/boot/bcd" "sources/boot.wim" "boot/bcd" "bootmgr.efi" "boot/etfsboot.com" ; do
if vt_file_exist_nocase (loop)/$file; then
set vtoy_os=Windows
break
fi
done
if [ -n "${vtdebug_flag}" ]; then
echo ISO is $vtoy_os
fi
}
function vt_check_pe {
unset VT_PE_SUPPORT
function vt_check_compatible_pe {
#Check for PE without external tools
if [ -f $1/HBCD_PE.ini ]; then
set ventoy_compatible=YES
set VT_PE_SUPPORT=YES
elif [ -f $1/easyu.flg ]; then
set VT_PE_SUPPORT=YES
elif [ -f $1/USM.ICO ]; then
set VT_PE_SUPPORT=YES
elif [ -d $1/USM_TOOL ]; then
set VT_PE_SUPPORT=YES
set ventoy_compatible=YES
fi
}
function locate_initrd {
vt_linux_locate_initrd
if [ -n "${vtdebug_flag}" ]; then
if [ -n "${vtdebug_flag}" ]; then
vt_linux_dump_initrd
sleep 5
ventoy_debug_pause
fi
}
function
find_wim_file
{
unset ventoy_wim_file
function
locate_wim
{
vt_windows_locate_wim_patch (loop)
for file in "sources/boot.wim" "sources/BOOT.WIM" "Sources/Win10PEx64.WIM" "boot/BOOT.WIM" \
"winpe_x64.wim" "boot/10pex64.wim" "BOOT/USM1PE6L.WIM" "BOOT/USM1PE6F.WIM"; do
if [ -e $1/$file ]; then
set ventoy_wim_file=$1/$file
break
fi
done
if [ -n "${vtdebug_flag}" ]; then
echo '###############################################'
vt_dump_wim_patch
echo '###############################################'
ventoy_debug_pause
fi
}
function distro_specify_wim_patch {
if [ -d (loop)/h3pe ]; then
vt_windows_collect_wim_patch wim /BOOT/H3_10PE.WIM
vt_windows_collect_wim_patch wim /BOOT/H3_7PE.WIM
vt_windows_collect_wim_patch wim /BOOT/H3_8PE.WIM
vt_windows_collect_wim_patch wim /BOOT/H3_81PE.WIM
fi
}
function distro_specify_wim_patch_phase2 {
if [ -f (loop)/boot/boot.wim ]; then
vt_windows_collect_wim_patch wim /boot/boot.wim
fi
}
function distro_specify_initrd_file {
if [ -e (loop)/boot/all.rdz ]; then
vt_linux_specify_initrd_file /boot/all.rdz
...
...
@@ -127,32 +158,50 @@ function distro_specify_initrd_file_phase2 {
function uefi_windows_menu_func {
vt_windows_reset
if [ "$ventoy_compatible" = "NO" ]; then
find_wim_file (loop)
if [ -n "$ventoy_wim_file" ]; then
vt_windows_locate_wim $ventoy_wim_file
if [ "$ventoy_compatible" = "NO" ]; then
if [ "$ventoy_fs_probe" = "iso9660" ]; then
loopback -d loop
vt_iso9660_nojoliet 1
loopback loop $1$2
fi
fi
vt_windows_chain_data ${1}${chosen_path}
for file in "efi/microsoft/boot/bcd"; do
vt_windows_collect_wim_patch bcd (loop)/$file
done
if [ -n "${vtdebug_flag}" ]; then
sleep 5
vt_windows_count_wim_patch vt_wim_cnt
if [ $vt_wim_cnt -eq 0 ]; then
distro_specify_wim_patch_phase2
fi
ventoy_debug_pause
locate_wim
fi
vt_windows_chain_data ${1}${chosen_path}
ventoy_debug_pause
if [ -n "$vtoy_chain_mem_addr" ]; then
terminal_output console
chainloader ${vtoy_path}/ventoy_x64.efi env_param=${env_param} isoefi=${LoadIsoEfiDriver} ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size}
boot
else
echo "chain empty failed"
sleep 5
ventoy_pause
fi
}
function uefi_linux_menu_func {
if [ "$ventoy_compatible" = "NO" ]; then
if [ "$ventoy_fs_probe" = "udf" ]; then
loopback -d loop
set ventoy_fs_probe=iso9660
loopback loop $1$2
fi
vt_load_cpio ${vtoy_path}/ventoy.cpio $2 $1
vt_linux_clear_initrd
...
...
@@ -166,20 +215,14 @@ function uefi_linux_menu_func {
fi
done
fi
# special process for special distros
if [ -d (loop)/loader/entries ]; then
set LoadIsoEfiDriver=on
vt_linux_parse_initrd_grub dir (loop)/loader/entries/
elif [ -d (loop)/boot/grub ]; then
vt_linux_parse_initrd_grub dir (loop)/boot/grub/
fi
if [ -e (loop)/syslinux/alt0/full.cz ]; then
set LoadIsoEfiDriver=on
set FirstTryBootFile='@EFI@BOOT@grubx64.efi'
fi
distro_specify_initrd_file
vt_linux_initrd_count vtcount
...
...
@@ -194,6 +237,24 @@ function uefi_linux_menu_func {
fi
locate_initrd
if [ -d (loop)/loader/entries ]; then
vt_linux_get_main_initrd_index vtindex
if [ -d (loop)/arch ]; then
if [ -f (loop)/arch/boot/x86_64/archiso.img ]; then
vt_add_replace_file $vtindex "EFI\\archiso\\archiso.img"
elif [ -f (loop)/boot/initramfs_x86_64.img ]; then
vt_add_replace_file $vtindex "boot\\initramfs_x86_64.img"
fi
elif [ -f (loop)/EFI/BOOT/initrd.gz ]; then
vt_add_replace_file $vtindex "EFI\\BOOT\\initrd.gz"
fi
elif [ -e (loop)/syslinux/alt0/full.cz ]; then
vt_add_replace_file 0 "EFI\\BOOT\\full.cz"
set FirstTryBootFile='@EFI@BOOT@grubx64.efi'
fi
fi
vt_linux_chain_data ${1}${chosen_path}
...
...
@@ -204,7 +265,7 @@ function uefi_linux_menu_func {
boot
else
echo "chain empty failed"
sleep 5
ventoy_pause
fi
}
...
...
@@ -232,6 +293,7 @@ function uefi_iso_menu_func {
set ventoy_fs_probe=udf
else
set ventoy_fs_probe=iso9660
vt_iso9660_nojoliet 0
fi
loopback loop ${1}${chosen_path}
...
...
@@ -257,13 +319,7 @@ function uefi_iso_menu_func {
vt_img_sector ${1}${chosen_path}
if [ "$vtoy_os" = "Windows" ]; then
vt_check_pe (loop)
if [ "$VT_PE_SUPPORT" != "YES" ]; then
if [ "$ventoy_fs_probe" = "iso9660" ]; then
set ventoy_compatible=YES
fi
fi
vt_check_compatible_pe (loop)
uefi_windows_menu_func $1 ${chosen_path}
else
uefi_linux_menu_func $1 ${chosen_path}
...
...
@@ -287,32 +343,50 @@ function uefi_iso_memdisk {
function legacy_windows_menu_func {
vt_windows_reset
if [ "$ventoy_compatible" = "NO" ]; then
find_wim_file (loop)
if [
-n
"$ventoy_
wim_file
" ]; then
vt_windows_locate_wim $ventoy_wim_file
elif [ -n "${vtdebug_flag}" ]; then
echo No wim file found
if [ "$ventoy_compatible" = "NO" ]; then
if [ "$ventoy_
fs_probe" = "iso9660
" ]; then
loopback -d loop
vt_iso9660_nojoliet 1
loopback loop $1$2
fi
for file in "boot/bcd" "/efi/microsoft/boot/bcd" "SSTR/BCD"; do
vt_windows_collect_wim_patch bcd (loop)/$file
done
distro_specify_wim_patch
vt_windows_count_wim_patch vt_wim_cnt
if [ $vt_wim_cnt -eq 0 ]; then
distro_specify_wim_patch_phase2
fi
ventoy_debug_pause
locate_wim
fi
vt_windows_chain_data ${1}${chosen_path}
if [ -n "${vtdebug_flag}" ]; then
sleep 5
fi
vt_windows_chain_data ${1}${chosen_path}
ventoy_debug_pause
if [ -n "$vtoy_chain_mem_addr" ]; then
linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} ibft mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size}
boot
else
echo "chain empty failed"
sleep 5
ventoy_pause
fi
}
function legacy_linux_menu_func {
if [ "$ventoy_compatible" = "NO" ]; then
if [ "$ventoy_fs_probe" = "udf" ]; then
loopback -d loop
set ventoy_fs_probe=iso9660
loopback loop $1$2
fi
vt_load_cpio $vtoy_path/ventoy.cpio $2 $1
vt_linux_clear_initrd
...
...
@@ -352,18 +426,15 @@ function legacy_linux_menu_func {
locate_initrd
fi
vt_linux_chain_data ${1}${chosen_path}
if [ -n "${vtdebug_flag}" ]; then
sleep 5
fi
vt_linux_chain_data ${1}${chosen_path}
ventoy_debug_pause
if [ -n "$vtoy_chain_mem_addr" ]; then
linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size}
boot
else
echo "chain empty failed"
sleep 5
ventoy_pause
fi
}
...
...
@@ -381,12 +452,12 @@ function legacy_iso_menu_func {
set ventoy_fs_probe=udf
else
set ventoy_fs_probe=iso9660
fi
loopback loop ${1}${chosen_path}
vt_iso9660_nojoliet 0
fi
loopback loop ${1}${chosen_path}
get_os_type (loop)
if [ -n "$vtcompat" ]; then
set ventoy_compatible=YES
unset vtcompat
...
...
@@ -399,13 +470,7 @@ function legacy_iso_menu_func {
vt_img_sector ${1}${chosen_path}
if [ "$vtoy_os" = "Windows" ]; then
vt_check_pe (loop)
if [ "$VT_PE_SUPPORT" != "YES" ]; then
if [ "$ventoy_fs_probe" = "iso9660" ]; then
set ventoy_compatible=YES
fi
fi
vt_check_compatible_pe (loop)
legacy_windows_menu_func $1 ${chosen_path}
else
legacy_linux_menu_func $1 ${chosen_path}
...
...
@@ -446,10 +511,9 @@ function iso_unsupport_menuentry {
function wim_common_menuentry {
vt_chosen_img_path chosen_path
vt_wim_chain_data ${iso_path}${chosen_path}
if [ -n "${vtdebug_flag}" ]; then
sleep 5
fi
vt_wim_chain_data ${iso_path}${chosen_path}
ventoy_debug_pause
if [ -n "$vtoy_chain_mem_addr" ]; then
if [ "$grub_platform" = "pc" ]; then
...
...
@@ -461,7 +525,7 @@ function wim_common_menuentry {
boot
else
echo "chain empty failed"
sleep 5
ventoy_pause
fi
}
...
...
@@ -479,7 +543,7 @@ function wim_unsupport_menuentry {
#############################################################
#############################################################
set VENTOY_VERSION="1.0.1
2
"
set VENTOY_VERSION="1.0.1
3
"
# Default menu display mode, you can change it as you want.
# 0: List mode
...
...
@@ -490,10 +554,12 @@ set VTOY_DEFAULT_MENU_MODE=0
unset timeout
set VTOY_MEM_DISK_STR="[Memdisk]"
set VTOY_ISO_RAW_STR="
ISO RAW
"
set VTOY_ISO_RAW_STR="
Compatible Mode
"
set VTOY_ISO_UEFI_DRV_STR="UEFI FS"
set VTOY_F2_CMD="ventoy_power"
set VTOY_F4_CMD="ventoy_localboot"
set VTOY_F5_CMD="ventoy_diagnosis"
if [ "$grub_platform" = "pc" ]; then
set VTOY_TEXT_MENU_VER="Ventoy $VENTOY_VERSION BIOS www.ventoy.net"
...
...
@@ -504,7 +570,7 @@ fi
vt_device $root vtoy_dev
if [ "$vtoy_dev" = "tftp" ]; then
set vtoy_path=($root)
set vtoy_path=($root)
for vtid in 0 1 2 3; do
if [ -d (hd$vtid,2)/ventoy ]; then
set iso_path=(hd$vtid,1)
...
...
@@ -512,13 +578,19 @@ if [ "$vtoy_dev" = "tftp" ]; then
break
fi
done
loadfont ascii
else
set vtoy_path=($root)/ventoy
if [ "$prefix" = "(ventoydisk)/grub" ]; then
set vtoy_path=(ventoydisk)/ventoy
else
set vtoy_path=($root)/ventoy
fi
set iso_path=($vtoy_dev,1)
set vtoy_efi_part=($vtoy_dev,2)
loadfont unicode
fi
loadfont ascii
#Load Plugin
if [ -f $iso_path/ventoy/ventoy.json ]; then
...
...
@@ -534,10 +606,10 @@ fi
if [ $VTOY_DEFAULT_MENU_MODE -eq 0 ]; then
set VTOY_F3_CMD="vt_dynamic_menu 1 1"
set VTOY_HOTKEY_TIP="F1:Memdisk F2:Power F3:TreeView"
set VTOY_HOTKEY_TIP="F1:Memdisk F2:Power F3:TreeView
F4:Localboot F5:Debug
"
else
set VTOY_F3_CMD="vt_dynamic_menu 1 0"
set VTOY_HOTKEY_TIP="F1:Memdisk F2:Power F3:ListView"
set VTOY_HOTKEY_TIP="F1:Memdisk F2:Power F3:ListView
F4:Localboot F5:Debug
"
fi
...
...
@@ -553,7 +625,13 @@ else
set theme=$prefix/themes/ventoy/theme.txt
fi
terminal_output gfxterm
if [ "$vtoy_display_mode" = "CLI" ]; then
terminal_output console
else
terminal_output gfxterm
fi
#vtdebug on
#colect all image files (iso files)
set ventoy_img_count=0
...
...
Prev
1
2
3
Next
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