Compare commits
4 Commits
7b8f194466
...
0.5.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 2afe2cc813 | |||
| e6cfbe525f | |||
| 7cc969938e | |||
| 0f3eeaa22e |
24
dist/archlinux/PKGBUILD
vendored
24
dist/archlinux/PKGBUILD
vendored
@@ -1,24 +0,0 @@
|
|||||||
# Maintainer: MatMoul <matmoul@gmail.com>
|
|
||||||
|
|
||||||
pkgname=bootdisk
|
|
||||||
pkgver=0.1
|
|
||||||
pkgrel=1
|
|
||||||
pkgdesc="Simple command to boot device with QEMU/KVM"
|
|
||||||
arch=('any')
|
|
||||||
url="https://github.com/MatMoul/bootdisk"
|
|
||||||
license=('GPL3')
|
|
||||||
depends=('qemu' 'edk2-ovmf' 'swtpm')
|
|
||||||
provides=("bootdisk=${pkgver}")
|
|
||||||
source=("git://github.com/MatMoul/${pkgname}.git")
|
|
||||||
#source=("git://github.com/MatMoul/${pkgname}.git#branch=")
|
|
||||||
md5sums=('SKIP')
|
|
||||||
|
|
||||||
build() {
|
|
||||||
cd ${pkgname}
|
|
||||||
}
|
|
||||||
|
|
||||||
package() {
|
|
||||||
cd ${pkgname}
|
|
||||||
install -Dm755 "src/bootdisk" "${pkgdir}/usr/bin/bootdisk"
|
|
||||||
install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
|
|
||||||
}
|
|
||||||
30
src/bootdisk
30
src/bootdisk
@@ -14,27 +14,23 @@ qemuworkdirpersistent=
|
|||||||
diskoverlay=
|
diskoverlay=
|
||||||
bootcmd=bootefi
|
bootcmd=bootefi
|
||||||
|
|
||||||
ovmfcode=/usr/share/edk2-ovmf/x64/OVMF_CODE.fd
|
ovmfcode=/usr/share/edk2-ovmf/x64/OVMF_CODE.4m.fd
|
||||||
ovmfcodesb=/usr/share/edk2-ovmf/x64/OVMF_CODE.secboot.fd
|
ovmfcodesb=/usr/share/edk2-ovmf/x64/OVMF_CODE.secboot.4m.fd
|
||||||
ovmfvars=/usr/share/edk2-ovmf/x64/OVMF_VARS.fd
|
ovmfvars=/usr/share/edk2-ovmf/x64/OVMF_VARS.4m.fd
|
||||||
|
|
||||||
|
initefi(){
|
||||||
|
if [[ ! -f ${qemuworkdir}/OVMF_VARS.fd ]]; then
|
||||||
|
cp ${ovmfvars} ${qemuworkdir}/OVMF_VARS.fd
|
||||||
|
fi
|
||||||
|
}
|
||||||
inittpm(){
|
inittpm(){
|
||||||
swtpm socket \
|
swtpm socket \
|
||||||
--tpm2 \
|
--tpm2 \
|
||||||
--tpmstate dir=${qemuworkdir} \
|
--tpmstate dir=${qemuworkdir} \
|
||||||
--ctrl type=unixio,path=${qemuworkdir}/swtpm-sock &
|
--ctrl type=unixio,path=${qemuworkdir}/swtpm-sock &
|
||||||
}
|
}
|
||||||
initsecureboot(){
|
|
||||||
if [[ ! -f ${qemuworkdir}/OVMF_CODE.secboot.fd ]]; then
|
|
||||||
cp ${ovmfcodesb} ${qemuworkdir}/OVMF_CODE.secboot.fd
|
|
||||||
fi
|
|
||||||
if [[ ! -f ${qemuworkdir}/OVMF_VARS.fd ]]; then
|
|
||||||
cp ${ovmfvars} ${qemuworkdir}/OVMF_VARS.fd
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
initbootargs(){
|
initbootargs(){
|
||||||
bootargs="-boot menu=on,strict=on,reboot-timeout=1000 "
|
bootargs="-boot menu=on,strict=on,reboot-timeout=1000 "
|
||||||
bootargs+="-no-hpet "
|
|
||||||
bootargs+="-rtc base=${qemurtcbase} "
|
bootargs+="-rtc base=${qemurtcbase} "
|
||||||
bootargs+="-cpu host "
|
bootargs+="-cpu host "
|
||||||
bootargs+="-smp cores=${qemucpucores} "
|
bootargs+="-smp cores=${qemucpucores} "
|
||||||
@@ -57,21 +53,27 @@ bootbios(){
|
|||||||
bootefi(){
|
bootefi(){
|
||||||
echo "Booting EFI..."
|
echo "Booting EFI..."
|
||||||
initbootargs
|
initbootargs
|
||||||
|
initefi
|
||||||
${qemubin} \
|
${qemubin} \
|
||||||
-bios ${ovmfcode} \
|
-bios ${ovmfcode} \
|
||||||
${bootargs} \
|
${bootargs} \
|
||||||
-machine accel=kvm \
|
-machine accel=kvm \
|
||||||
|
-drive if=pflash,format=raw,unit=0,file=${ovmfcode},readonly=on \
|
||||||
|
-drive if=pflash,format=raw,unit=1,file=${qemuworkdir}/OVMF_VARS.fd \
|
||||||
${qemusrctype} ${qemusrc} \
|
${qemusrctype} ${qemusrc} \
|
||||||
${qemusdb}
|
${qemusdb}
|
||||||
}
|
}
|
||||||
bootefitpm(){
|
bootefitpm(){
|
||||||
echo "Booting EFI + TPM..."
|
echo "Booting EFI + TPM..."
|
||||||
|
initefi
|
||||||
inittpm
|
inittpm
|
||||||
initbootargs
|
initbootargs
|
||||||
${qemubin} \
|
${qemubin} \
|
||||||
-bios ${ovmfcode} \
|
-bios ${ovmfcode} \
|
||||||
${bootargs} \
|
${bootargs} \
|
||||||
-machine accel=kvm \
|
-machine accel=kvm \
|
||||||
|
-drive if=pflash,format=raw,unit=0,file=${ovmfcode},readonly=on \
|
||||||
|
-drive if=pflash,format=raw,unit=1,file=${qemuworkdir}/OVMF_VARS.fd \
|
||||||
-chardev socket,id=tpmchar,path=${qemuworkdir}/swtpm-sock \
|
-chardev socket,id=tpmchar,path=${qemuworkdir}/swtpm-sock \
|
||||||
-tpmdev emulator,id=tpmdev,chardev=tpmchar \
|
-tpmdev emulator,id=tpmdev,chardev=tpmchar \
|
||||||
-device tpm-tis,tpmdev=tpmdev \
|
-device tpm-tis,tpmdev=tpmdev \
|
||||||
@@ -80,8 +82,8 @@ bootefitpm(){
|
|||||||
}
|
}
|
||||||
bootefisec(){
|
bootefisec(){
|
||||||
echo "Booting EFI + TPM + Secure boot..."
|
echo "Booting EFI + TPM + Secure boot..."
|
||||||
|
initefi
|
||||||
inittpm
|
inittpm
|
||||||
initsecureboot
|
|
||||||
initbootargs
|
initbootargs
|
||||||
${qemubin} \
|
${qemubin} \
|
||||||
-bios ${ovmfcode} \
|
-bios ${ovmfcode} \
|
||||||
@@ -89,7 +91,7 @@ bootefisec(){
|
|||||||
-machine type=q35,smm=on,accel=kvm \
|
-machine type=q35,smm=on,accel=kvm \
|
||||||
-global driver=cfi.pflash01,property=secure,value=on \
|
-global driver=cfi.pflash01,property=secure,value=on \
|
||||||
-global ICH9-LPC.disable_s3=1 \
|
-global ICH9-LPC.disable_s3=1 \
|
||||||
-drive if=pflash,format=raw,unit=0,file=${qemuworkdir}/OVMF_CODE.secboot.fd,readonly=on \
|
-drive if=pflash,format=raw,unit=0,file=${ovmfcodesb},readonly=on \
|
||||||
-drive if=pflash,format=raw,unit=1,file=${qemuworkdir}/OVMF_VARS.fd \
|
-drive if=pflash,format=raw,unit=1,file=${qemuworkdir}/OVMF_VARS.fd \
|
||||||
-chardev socket,id=tpmchar,path=${qemuworkdir}/swtpm-sock \
|
-chardev socket,id=tpmchar,path=${qemuworkdir}/swtpm-sock \
|
||||||
-tpmdev emulator,id=tpmdev,chardev=tpmchar \
|
-tpmdev emulator,id=tpmdev,chardev=tpmchar \
|
||||||
|
|||||||
Reference in New Issue
Block a user