Clonezilla for XP-era PCs: 32-bit build picked by CPU
Current Clonezilla is amd64-only. The menu now checks the CPU with iPXE's cpuid --ext 29 (long mode): 64-bit CPUs get the current release (through Debian's shim under Secure Boot), 32-bit-only CPUs (Pentium 4 without EM64T, Pentium M, early Atom) get Clonezilla 3.2.0-5 i686, the last 32-bit release, from clonezilla-i686/. Without a cpuid command the 32-bit build is used, which also runs on 64-bit CPUs; UEFI always gets the 64-bit build. A 'Clonezilla Live 32-bit' item forces it. prepare-boot-tools.sh downloads it, the playbook deploys it.
This commit is contained in:
@@ -11,6 +11,7 @@ item blancco Blancco Drive Eraser
|
||||
item blancco_debug Blancco Drive Eraser (debug / SSH)
|
||||
item --gap -- ---- Utilities ----
|
||||
item clonezilla Clonezilla Live (Disk Imaging)
|
||||
item clonezilla32 Clonezilla Live 32-bit (XP-era PCs, forced)
|
||||
item --gap -- Memory test: Dell PCs press F12 at power-on, Diagnostics
|
||||
item --gap -- ----
|
||||
item reboot Reboot
|
||||
@@ -48,6 +49,14 @@ echo Check that the PXE server is up and the win11 boot files are staged.
|
||||
prompt Press any key to return to menu... && goto menu || goto menu
|
||||
|
||||
:clonezilla
|
||||
# 64-bit CPUs (cpuid extended bit 29 = long mode) get the current Clonezilla;
|
||||
# older 32-bit-only CPUs (Pentium 4 without EM64T, Pentium M, early Atom:
|
||||
# many XP-era PCs) get the last 32-bit release. If this iPXE has no cpuid
|
||||
# command the check fails and the 32-bit build is used, which also runs
|
||||
# on 64-bit CPUs.
|
||||
cpuid --ext 29 && goto clonezilla64 || goto clonezilla32
|
||||
|
||||
:clonezilla64
|
||||
set base http://${server}/clonezilla
|
||||
kernel ${base}/vmlinuz boot=live username=user union=overlay config components noswap edd=on nomodeset nodmraid locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no net.ifnames=0 nosplash noprompt fetch=${base}/filesystem.squashfs || goto secureboot_warn
|
||||
initrd ${base}/initrd.img || goto boot_failed
|
||||
@@ -55,11 +64,21 @@ initrd ${base}/initrd.img || goto boot_failed
|
||||
# Debian's Microsoft-signed shim (from the Clonezilla release, staged as
|
||||
# clonezilla/shimx64.efi by prepare-boot-tools.sh), the same way Blancco
|
||||
# uses Ubuntu's. Its modules (usb-storage, uas, exfat) are signed by the
|
||||
# same build key, so USB drives work. Without the shim command (old iPXE)
|
||||
# the line fails harmlessly and the kernel boots directly (Secure Boot off).
|
||||
# same build key, so USB drives work. Without the shim command (legacy
|
||||
# BIOS, old iPXE) the line fails harmlessly and the kernel boots directly.
|
||||
shim ${base}/shimx64.efi ||
|
||||
boot || goto secureboot_warn
|
||||
|
||||
:clonezilla32
|
||||
# Clonezilla 3.2.0-5 i686 (the last 32-bit release; later ones are amd64
|
||||
# only), for legacy-BIOS XP-era PCs. A UEFI PC is always 64-bit and its
|
||||
# firmware cannot start a 32-bit kernel, so UEFI goes to the 64-bit build.
|
||||
iseq ${platform} efi && goto clonezilla64 ||
|
||||
set base http://${server}/clonezilla-i686
|
||||
kernel ${base}/vmlinuz boot=live username=user union=overlay config components noswap edd=on nomodeset nodmraid locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no net.ifnames=0 nosplash noprompt fetch=${base}/filesystem.squashfs || goto boot_failed
|
||||
initrd ${base}/initrd.img || goto boot_failed
|
||||
boot || goto boot_failed
|
||||
|
||||
:blancco
|
||||
iseq ${platform} pcbios && goto blancco_bios || goto blancco_efi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user