penguins-eggs 25.8.6 → 25.8.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +8 -1
- package/README.md +31 -30
- package/addons/eggs/theme/calamares/modules/users.yml +3 -3
- package/addons/eggs/theme/livecd/{grub.main.simple.cfg → grub.main.cfg} +2 -22
- package/assets/calamares/install-system.sh +2 -2
- package/conf/derivatives.yaml +7 -0
- package/conf/distros/buster/calamares/modules/bootloader.yml +45 -16
- package/conf/distros/buster/calamares/modules/mount.yml +103 -28
- package/dist/classes/distro.js +14 -6
- package/dist/classes/diversions.d.ts +1 -0
- package/dist/classes/diversions.js +7 -0
- package/dist/classes/incubation/incubator.d.ts +4 -0
- package/dist/classes/incubation/incubator.js +14 -0
- package/dist/classes/ovary.d/bind-live-fs.js +2 -2
- package/dist/classes/ovary.d/live-create-structure.js +1 -1
- package/dist/classes/ovary.d/make-dot-disk.js +16 -4
- package/dist/classes/ovary.d/make-efi.d.ts +0 -2
- package/dist/classes/ovary.d/make-efi.js +131 -70
- package/dist/classes/ovary.d/make-iso.js +1 -1
- package/dist/classes/ovary.d/produce.js +5 -1
- package/dist/classes/ovary.d/syslinux.js +12 -10
- package/dist/classes/ovary.d/xorriso-command.js +51 -47
- package/dist/classes/pacman.js +7 -0
- package/dist/classes/pxe.d.ts +1 -2
- package/dist/classes/pxe.js +35 -21
- package/dist/classes/utils.d/kernel.d.ts +6 -56
- package/dist/classes/utils.d/kernel.js +49 -280
- package/dist/classes/utils.js +11 -5
- package/dist/commands/cuckoo.d.ts +1 -0
- package/dist/commands/cuckoo.js +3 -2
- package/dist/lib/utils.js +1 -0
- package/dist/penguins-eggs_25.8.28-1_amd64.deb +0 -0
- package/dist/penguins-eggs_25.8.28-1_amd64.deb.sha256 +1 -0
- package/dist/{penguins-eggs_25.8.6-bionic-1_amd64.deb → penguins-eggs_25.8.28-1_arm64.deb} +0 -0
- package/dist/penguins-eggs_25.8.28-1_arm64.deb.sha256 +1 -0
- package/dist/penguins-eggs_25.8.28-1_i386.deb +0 -0
- package/dist/penguins-eggs_25.8.28-1_i386.deb.sha256 +1 -0
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +46 -18
- package/package.json +8 -9
- package/perrisbrewery/template/dependencies-bionic.yaml +1 -0
- package/perrisbrewery/template/dependencies.yaml +21 -4
- package/scripts/_eggs +7 -6
- package/scripts/eggs.bash +2 -2
- package/addons/eggs/theme/livecd/grub.main.full.cfg +0 -43
- package/bootloaders/README.md +0 -22
- package/bootloaders/grub/x86_64-efi/acpi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/adler32.mod +0 -0
- package/bootloaders/grub/x86_64-efi/affs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/afs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/afsplitter.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ahci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/all_video.mod +0 -0
- package/bootloaders/grub/x86_64-efi/aout.mod +0 -0
- package/bootloaders/grub/x86_64-efi/appleldr.mod +0 -0
- package/bootloaders/grub/x86_64-efi/archelp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/at_keyboard.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ata.mod +0 -0
- package/bootloaders/grub/x86_64-efi/backtrace.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bitmap.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bitmap_scale.mod +0 -0
- package/bootloaders/grub/x86_64-efi/blocklist.mod +0 -0
- package/bootloaders/grub/x86_64-efi/boot.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bsd.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bswap_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/btrfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/bufio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cat.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cbfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cbls.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cbmemc.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cbtable.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cbtime.mod +0 -0
- package/bootloaders/grub/x86_64-efi/chain.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cmdline_cat_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cmp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cmp_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/command.lst +0 -194
- package/bootloaders/grub/x86_64-efi/config.h +0 -69
- package/bootloaders/grub/x86_64-efi/configfile.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cpio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cpio_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cpuid.mod +0 -0
- package/bootloaders/grub/x86_64-efi/crc64.mod +0 -0
- package/bootloaders/grub/x86_64-efi/crypto.lst +0 -45
- package/bootloaders/grub/x86_64-efi/crypto.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cryptodisk.mod +0 -0
- package/bootloaders/grub/x86_64-efi/cs5536.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ctz_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/date.mod +0 -0
- package/bootloaders/grub/x86_64-efi/datehook.mod +0 -0
- package/bootloaders/grub/x86_64-efi/datetime.mod +0 -0
- package/bootloaders/grub/x86_64-efi/disk.mod +0 -0
- package/bootloaders/grub/x86_64-efi/diskfilter.mod +0 -0
- package/bootloaders/grub/x86_64-efi/div.mod +0 -0
- package/bootloaders/grub/x86_64-efi/div_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/dm_nv.mod +0 -0
- package/bootloaders/grub/x86_64-efi/echo.mod +0 -0
- package/bootloaders/grub/x86_64-efi/efi_gop.mod +0 -0
- package/bootloaders/grub/x86_64-efi/efi_uga.mod +0 -0
- package/bootloaders/grub/x86_64-efi/efifwsetup.mod +0 -0
- package/bootloaders/grub/x86_64-efi/efinet.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ehci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/elf.mod +0 -0
- package/bootloaders/grub/x86_64-efi/eval.mod +0 -0
- package/bootloaders/grub/x86_64-efi/exfat.mod +0 -0
- package/bootloaders/grub/x86_64-efi/exfctest.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ext2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/extcmd.mod +0 -0
- package/bootloaders/grub/x86_64-efi/f2fs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/fat.mod +0 -0
- package/bootloaders/grub/x86_64-efi/fdt.lst +0 -0
- package/bootloaders/grub/x86_64-efi/file.mod +0 -0
- package/bootloaders/grub/x86_64-efi/fixvideo.mod +0 -0
- package/bootloaders/grub/x86_64-efi/font.mod +0 -0
- package/bootloaders/grub/x86_64-efi/fs.lst +0 -37
- package/bootloaders/grub/x86_64-efi/fshelp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/functional_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_arcfour.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_blowfish.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_camellia.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_cast5.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_crc.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_des.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_dsa.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_idea.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_md4.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_md5.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_rfc2268.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_rijndael.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_rmd160.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_rsa.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_seed.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_serpent.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_sha1.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_sha256.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_sha512.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_tiger.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_twofish.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gcry_whirlpool.mod +0 -0
- package/bootloaders/grub/x86_64-efi/geli.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gettext.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gfxmenu.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gfxterm.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gfxterm_background.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gfxterm_menu.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gptsync.mod +0 -0
- package/bootloaders/grub/x86_64-efi/gzio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/halt.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hashsum.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hdparm.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hello.mod +0 -0
- package/bootloaders/grub/x86_64-efi/help.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hexdump.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hfsplus.mod +0 -0
- package/bootloaders/grub/x86_64-efi/hfspluscomp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/http.mod +0 -0
- package/bootloaders/grub/x86_64-efi/iorw.mod +0 -0
- package/bootloaders/grub/x86_64-efi/iso9660.mod +0 -0
- package/bootloaders/grub/x86_64-efi/jfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/jpeg.mod +0 -0
- package/bootloaders/grub/x86_64-efi/json.mod +0 -0
- package/bootloaders/grub/x86_64-efi/kernel.img +0 -0
- package/bootloaders/grub/x86_64-efi/keylayouts.mod +0 -0
- package/bootloaders/grub/x86_64-efi/keystatus.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ldm.mod +0 -0
- package/bootloaders/grub/x86_64-efi/legacy_password_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/legacycfg.mod +0 -0
- package/bootloaders/grub/x86_64-efi/linux.mod +0 -0
- package/bootloaders/grub/x86_64-efi/linux16.mod +0 -0
- package/bootloaders/grub/x86_64-efi/linuxefi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/loadbios.mod +0 -0
- package/bootloaders/grub/x86_64-efi/loadenv.mod +0 -0
- package/bootloaders/grub/x86_64-efi/loopback.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ls.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lsacpi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lsefi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lsefimmap.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lsefisystab.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lsmmap.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lspci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lssal.mod +0 -0
- package/bootloaders/grub/x86_64-efi/luks.mod +0 -0
- package/bootloaders/grub/x86_64-efi/luks2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lvm.mod +0 -0
- package/bootloaders/grub/x86_64-efi/lzopio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/macbless.mod +0 -0
- package/bootloaders/grub/x86_64-efi/macho.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mdraid09.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mdraid09_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mdraid1x.mod +0 -0
- package/bootloaders/grub/x86_64-efi/memdisk.mod +0 -0
- package/bootloaders/grub/x86_64-efi/memrw.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minicmd.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix2_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix3.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix3_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/minix_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mmap.mod +0 -0
- package/bootloaders/grub/x86_64-efi/moddep.lst +0 -267
- package/bootloaders/grub/x86_64-efi/modinfo.sh +0 -40
- package/bootloaders/grub/x86_64-efi/monolithic/gcdx64.efi +0 -0
- package/bootloaders/grub/x86_64-efi/monolithic/grubnetx64-installer.efi +0 -0
- package/bootloaders/grub/x86_64-efi/monolithic/grubnetx64.efi +0 -0
- package/bootloaders/grub/x86_64-efi/monolithic/grubx64.efi +0 -0
- package/bootloaders/grub/x86_64-efi/morse.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mpi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/msdospart.mod +0 -0
- package/bootloaders/grub/x86_64-efi/mul_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/multiboot.mod +0 -0
- package/bootloaders/grub/x86_64-efi/multiboot2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/nativedisk.mod +0 -0
- package/bootloaders/grub/x86_64-efi/net.mod +0 -0
- package/bootloaders/grub/x86_64-efi/newc.mod +0 -0
- package/bootloaders/grub/x86_64-efi/nilfs2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/normal.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ntfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ntfscomp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/odc.mod +0 -0
- package/bootloaders/grub/x86_64-efi/offsetio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ohci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_acorn.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_amiga.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_apple.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_bsd.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_dfly.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_dvh.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_gpt.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_msdos.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_plan.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_sun.mod +0 -0
- package/bootloaders/grub/x86_64-efi/part_sunpc.mod +0 -0
- package/bootloaders/grub/x86_64-efi/partmap.lst +0 -11
- package/bootloaders/grub/x86_64-efi/parttool.lst +0 -1
- package/bootloaders/grub/x86_64-efi/parttool.mod +0 -0
- package/bootloaders/grub/x86_64-efi/password.mod +0 -0
- package/bootloaders/grub/x86_64-efi/password_pbkdf2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/pata.mod +0 -0
- package/bootloaders/grub/x86_64-efi/pbkdf2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/pbkdf2_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/pcidump.mod +0 -0
- package/bootloaders/grub/x86_64-efi/pgp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/play.mod +0 -0
- package/bootloaders/grub/x86_64-efi/png.mod +0 -0
- package/bootloaders/grub/x86_64-efi/priority_queue.mod +0 -0
- package/bootloaders/grub/x86_64-efi/probe.mod +0 -0
- package/bootloaders/grub/x86_64-efi/procfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/progress.mod +0 -0
- package/bootloaders/grub/x86_64-efi/raid5rec.mod +0 -0
- package/bootloaders/grub/x86_64-efi/raid6rec.mod +0 -0
- package/bootloaders/grub/x86_64-efi/random.mod +0 -0
- package/bootloaders/grub/x86_64-efi/rdmsr.mod +0 -0
- package/bootloaders/grub/x86_64-efi/read.mod +0 -0
- package/bootloaders/grub/x86_64-efi/reboot.mod +0 -0
- package/bootloaders/grub/x86_64-efi/regexp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/reiserfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/relocator.mod +0 -0
- package/bootloaders/grub/x86_64-efi/romfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/scsi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/search.mod +0 -0
- package/bootloaders/grub/x86_64-efi/search_fs_file.mod +0 -0
- package/bootloaders/grub/x86_64-efi/search_fs_uuid.mod +0 -0
- package/bootloaders/grub/x86_64-efi/search_label.mod +0 -0
- package/bootloaders/grub/x86_64-efi/serial.mod +0 -0
- package/bootloaders/grub/x86_64-efi/setjmp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/setjmp_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/setpci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/sfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/shift_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/signature_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/sleep.mod +0 -0
- package/bootloaders/grub/x86_64-efi/sleep_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/smbios.mod +0 -0
- package/bootloaders/grub/x86_64-efi/spkmodem.mod +0 -0
- package/bootloaders/grub/x86_64-efi/squash4.mod +0 -0
- package/bootloaders/grub/x86_64-efi/strtoull_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/syslinuxcfg.mod +0 -0
- package/bootloaders/grub/x86_64-efi/tar.mod +0 -0
- package/bootloaders/grub/x86_64-efi/terminal.lst +0 -9
- package/bootloaders/grub/x86_64-efi/terminal.mod +0 -0
- package/bootloaders/grub/x86_64-efi/terminfo.mod +0 -0
- package/bootloaders/grub/x86_64-efi/test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/test_blockarg.mod +0 -0
- package/bootloaders/grub/x86_64-efi/testload.mod +0 -0
- package/bootloaders/grub/x86_64-efi/testspeed.mod +0 -0
- package/bootloaders/grub/x86_64-efi/tftp.mod +0 -0
- package/bootloaders/grub/x86_64-efi/tga.mod +0 -0
- package/bootloaders/grub/x86_64-efi/time.mod +0 -0
- package/bootloaders/grub/x86_64-efi/tpm.mod +0 -0
- package/bootloaders/grub/x86_64-efi/tr.mod +0 -0
- package/bootloaders/grub/x86_64-efi/trig.mod +0 -0
- package/bootloaders/grub/x86_64-efi/true.mod +0 -0
- package/bootloaders/grub/x86_64-efi/udf.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ufs1.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ufs1_be.mod +0 -0
- package/bootloaders/grub/x86_64-efi/ufs2.mod +0 -0
- package/bootloaders/grub/x86_64-efi/uhci.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usb.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usb_keyboard.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbms.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbserial_common.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbserial_ftdi.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbserial_pl2303.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbserial_usbdebug.mod +0 -0
- package/bootloaders/grub/x86_64-efi/usbtest.mod +0 -0
- package/bootloaders/grub/x86_64-efi/video.lst +0 -4
- package/bootloaders/grub/x86_64-efi/video.mod +0 -0
- package/bootloaders/grub/x86_64-efi/video_bochs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/video_cirrus.mod +0 -0
- package/bootloaders/grub/x86_64-efi/video_colors.mod +0 -0
- package/bootloaders/grub/x86_64-efi/video_fb.mod +0 -0
- package/bootloaders/grub/x86_64-efi/videoinfo.mod +0 -0
- package/bootloaders/grub/x86_64-efi/videotest.mod +0 -0
- package/bootloaders/grub/x86_64-efi/videotest_checksum.mod +0 -0
- package/bootloaders/grub/x86_64-efi/wrmsr.mod +0 -0
- package/bootloaders/grub/x86_64-efi/xfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/xnu.mod +0 -0
- package/bootloaders/grub/x86_64-efi/xnu_uuid.mod +0 -0
- package/bootloaders/grub/x86_64-efi/xnu_uuid_test.mod +0 -0
- package/bootloaders/grub/x86_64-efi/xzio.mod +0 -0
- package/bootloaders/grub/x86_64-efi/zfs.mod +0 -0
- package/bootloaders/grub/x86_64-efi/zfscrypt.mod +0 -0
- package/bootloaders/grub/x86_64-efi/zfsinfo.mod +0 -0
- package/bootloaders/grub/x86_64-efi/zstd.mod +0 -0
- package/bootloaders/grubnetx64.efi.signed +0 -0
- package/bootloaders/grubx64.efi +0 -0
- package/bootloaders/grubx64.efi.signed +0 -0
- package/bootloaders/ipxe.pxe +0 -0
- package/bootloaders/shimx64.efi +0 -0
- package/bootloaders/shimx64.efi.signed +0 -0
- package/bootloaders/syslinux/README.md +0 -3
- package/bootloaders/syslinux/chain.c32 +0 -0
- package/bootloaders/syslinux/isohdpfx.bin +0 -0
- package/bootloaders/syslinux/isolinux.bin +0 -0
- package/bootloaders/syslinux/ldlinux.c32 +0 -0
- package/bootloaders/syslinux/libcom32.c32 +0 -0
- package/bootloaders/syslinux/libutil.c32 +0 -0
- package/bootloaders/syslinux/lpxelinux.0 +0 -0
- package/bootloaders/syslinux/memdisk +0 -0
- package/bootloaders/syslinux/pxelinux.0 +0 -0
- package/bootloaders/syslinux/vesamenu.c32 +0 -0
- package/bootloaders/undionly.kpxe +0 -0
- package/dist/penguins-eggs_25.8.6-bionic-1_amd64.deb.sha256 +0 -1
package/dist/classes/pxe.js
CHANGED
|
@@ -18,7 +18,6 @@ import Utils from './utils.js';
|
|
|
18
18
|
import Diversions from './diversions.js';
|
|
19
19
|
// _dirname
|
|
20
20
|
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
21
|
-
const bootloaders = path.resolve(__dirname, `../../bootloaders`);
|
|
22
21
|
/**
|
|
23
22
|
* Pxe:
|
|
24
23
|
*/
|
|
@@ -32,16 +31,16 @@ export default class Pxe {
|
|
|
32
31
|
pxeRoot = '';
|
|
33
32
|
distro = {};
|
|
34
33
|
settings = {};
|
|
35
|
-
verbose = false;
|
|
36
34
|
vmlinuz = '';
|
|
37
35
|
/**
|
|
38
36
|
* constructor
|
|
39
37
|
* @param nest
|
|
40
38
|
* @param pxeRoot
|
|
41
39
|
*/
|
|
42
|
-
constructor(nest = '', pxeRoot = '') {
|
|
40
|
+
constructor(nest = '', pxeRoot = '', verbose = false) {
|
|
43
41
|
this.nest = nest;
|
|
44
42
|
this.pxeRoot = pxeRoot;
|
|
43
|
+
this.echo = Utils.setEcho(verbose);
|
|
45
44
|
}
|
|
46
45
|
/**
|
|
47
46
|
* fertilization()
|
|
@@ -206,19 +205,22 @@ export default class Pxe {
|
|
|
206
205
|
* configure PXE bios
|
|
207
206
|
*/
|
|
208
207
|
async bios() {
|
|
208
|
+
const bootloaders = Diversions.bootloaders(this.distro.familyId);
|
|
209
209
|
await exec(`cp ${__dirname}/../../addons/eggs/theme/livecd/isolinux.theme.cfg ${this.pxeRoot}/isolinux.theme.cfg`, this.echo);
|
|
210
210
|
await exec(`cp ${__dirname}/../../addons/eggs/theme/livecd/splash.png ${this.pxeRoot}/splash.png`, this.echo);
|
|
211
211
|
// ipxe.pxe
|
|
212
|
-
await exec(`ln -s ${bootloaders}ipxe.pxe ${this.pxeRoot}/ipxe.pxe`, this.echo);
|
|
212
|
+
await exec(`ln -s ${bootloaders}ipxe/ipxe.pxe ${this.pxeRoot}/ipxe.pxe`, this.echo);
|
|
213
|
+
// snponly.efi
|
|
214
|
+
await exec(`ln -s ${bootloaders}ipxe/snponly.efi ${this.pxeRoot}/snponly.efi`, this.echo);
|
|
213
215
|
// pxe
|
|
214
|
-
await exec(`cp ${bootloaders}/
|
|
215
|
-
await exec(`cp ${bootloaders}/
|
|
216
|
+
await exec(`cp ${bootloaders}PXELINUX/pxelinux.0 ${this.pxeRoot}/pxelinux.0`, this.echo);
|
|
217
|
+
await exec(`cp ${bootloaders}PXELINUX/lpxelinux.0 ${this.pxeRoot}/lpxelinux.0`, this.echo);
|
|
216
218
|
// syslinux
|
|
217
|
-
await exec(`ln -s ${bootloaders}
|
|
218
|
-
await exec(`ln -s ${bootloaders}
|
|
219
|
-
await exec(`ln -s ${bootloaders}
|
|
220
|
-
await exec(`ln -s ${bootloaders}
|
|
221
|
-
await exec(`ln -s ${bootloaders}
|
|
219
|
+
await exec(`ln -s ${bootloaders}syslinux/modules/bios/ldlinux.c32 ${this.pxeRoot}/ldlinux.c32`, this.echo);
|
|
220
|
+
await exec(`ln -s ${bootloaders}syslinux/modules/bios/vesamenu.c32 ${this.pxeRoot}/vesamenu.c32`, this.echo);
|
|
221
|
+
await exec(`ln -s ${bootloaders}syslinux/modules/bios/libcom32.c32 ${this.pxeRoot}/libcom32.c32`, this.echo);
|
|
222
|
+
await exec(`ln -s ${bootloaders}syslinux/modules/bios/libutil.c32 ${this.pxeRoot}/libutil.c32`, this.echo);
|
|
223
|
+
await exec(`ln -s ${bootloaders}syslinux/modules/bios/memdisk ${this.pxeRoot}/memdisk`, this.echo);
|
|
222
224
|
await exec(`mkdir ${this.pxeRoot}/pxelinux.cfg`, this.echo);
|
|
223
225
|
let content = '';
|
|
224
226
|
content += '# eggs: pxelinux.cfg/default\n';
|
|
@@ -254,21 +256,33 @@ export default class Pxe {
|
|
|
254
256
|
* @param familyId
|
|
255
257
|
*/
|
|
256
258
|
async grubCfg() {
|
|
259
|
+
const bootloaders = Diversions.bootloaders(this.distro.familyId);
|
|
257
260
|
const echoYes = Utils.setEcho(true);
|
|
258
261
|
/**
|
|
259
262
|
* On Debian bookworm:
|
|
260
|
-
* cd ~/penguins-eggs
|
|
261
|
-
* cp /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed ./bootloaders/
|
|
262
|
-
* cp -r /usr/lib/grub/x86_64-efi/ ./bootloaders/grub/x86_64-efi/
|
|
263
263
|
*/
|
|
264
264
|
await exec(`mkdir -p ${this.pxeRoot}/grub`, this.echo);
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
265
|
+
if (this.distro.familyId === 'debian') {
|
|
266
|
+
if (process.arch === 'x64') {
|
|
267
|
+
await exec(`cp ${bootloaders}/grub/x86_64-efi-signed/grubnetx64.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
|
|
268
|
+
await exec(`cp -r ${bootloaders}/grub/x86_64-efi ${this.pxeRoot}/grub`, this.echo);
|
|
269
|
+
}
|
|
270
|
+
else if (process.arch === 'ia32') {
|
|
271
|
+
await exec(`cp ${bootloaders}/grub/i386-efi-signed/grubnetia32.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
|
|
272
|
+
await exec(`cp -r ${bootloaders}/grub/i386-efi ${this.pxeRoot}/grub`, this.echo);
|
|
273
|
+
}
|
|
274
|
+
else if (process.arch === 'arm64') {
|
|
275
|
+
await exec(`cp ${bootloaders}/grub/arm64-efi-signed/grubnetaa64.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
|
|
276
|
+
await exec(`cp -r ${bootloaders}/grub/arm64-efi ${this.pxeRoot}/grub`, this.echo);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
/**
|
|
281
|
+
* le altre distribuzione not signed
|
|
282
|
+
*/
|
|
283
|
+
await exec(`cp ${bootloaders}grub/x86_64-efi/monolithic/grubnetx64.efi ${this.pxeRoot}/grub.efi`, this.echo);
|
|
284
|
+
await exec(`cp -r ${bootloaders}/grub/x86_64-efi ${this.pxeRoot}/grub`, this.echo);
|
|
285
|
+
}
|
|
272
286
|
// Genera il file grub.cfg
|
|
273
287
|
const grubName = `${this.pxeRoot}/grub/grub.cfg`; // Il file deve chiamarsi grub.cfg
|
|
274
288
|
let grubContent = '';
|
|
@@ -25,63 +25,13 @@ export default class Kernel {
|
|
|
25
25
|
* ALL PRIVATE
|
|
26
26
|
*/
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* se non è presente - come nel caso di Franco Conidi - lo ricostruisce da initrd
|
|
31
|
-
*/
|
|
32
|
-
private static vmlinuxFromCmdline;
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
* @param kernel
|
|
36
|
-
* @returns
|
|
37
|
-
*/
|
|
38
|
-
private static vmLinuxFromFiles;
|
|
39
|
-
/**
|
|
40
|
-
* Rileva automaticamente il kernel dai moduli disponibili
|
|
41
|
-
*/
|
|
42
|
-
private static detectKernelFromModules;
|
|
43
|
-
/**
|
|
44
|
-
* Ottiene il path per un kernel specifico
|
|
28
|
+
* most of the distros:
|
|
29
|
+
* debian, fedora, opensuse, rasberry
|
|
45
30
|
*/
|
|
46
|
-
private static
|
|
31
|
+
private static vmlinuxFromUname;
|
|
47
32
|
/**
|
|
48
|
-
*
|
|
49
|
-
|
|
50
|
-
private static getKernelModulesPath;
|
|
51
|
-
/**
|
|
52
|
-
* Ottiene la lista dei kernel disponibili, ordinati
|
|
53
|
-
*/
|
|
54
|
-
private static getAvailableKernels;
|
|
55
|
-
/**
|
|
56
|
-
* Gestisce il rilevamento del kernel per Arch Linux
|
|
57
|
-
*/
|
|
58
|
-
private static getArchLinuxKernelPath;
|
|
59
|
-
/**
|
|
60
|
-
* Gestisce il path del kernel per Manjaro
|
|
61
|
-
*/
|
|
62
|
-
private static getManjaroKernelPath;
|
|
63
|
-
/**
|
|
64
|
-
* Gestisce il path del kernel standard per Arch Linux
|
|
65
|
-
*/
|
|
66
|
-
private static getStandardArchKernelPath;
|
|
67
|
-
/**
|
|
68
|
-
* Gestisce il kernel specifico per Arch Linux
|
|
69
|
-
*/
|
|
70
|
-
private static getArchLinuxSpecificKernel;
|
|
71
|
-
/**
|
|
72
|
-
* Gestisce initramfs per Arch Linux
|
|
73
|
-
*/
|
|
74
|
-
private static getArchInitramfs;
|
|
75
|
-
/**
|
|
76
|
-
* Lista i kernel disponibili in /boot per debugging
|
|
77
|
-
*/
|
|
78
|
-
private static listAvailableKernels;
|
|
79
|
-
/**
|
|
80
|
-
* Lista gli initramfs disponibili in /boot per debugging
|
|
81
|
-
*/
|
|
82
|
-
private static listAvailableInitramfs;
|
|
83
|
-
/**
|
|
84
|
-
* Ottiene informazioni sul kernel corrente
|
|
33
|
+
* vmlinuxFromCmdline
|
|
34
|
+
* raspbery /proc/cmdline dont contain it
|
|
85
35
|
*/
|
|
86
|
-
private static
|
|
36
|
+
private static vmlinuxFromCmdline;
|
|
87
37
|
}
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
import fs from 'node:fs';
|
|
8
8
|
import path from 'path';
|
|
9
9
|
import Distro from '../distro.js';
|
|
10
|
-
import Diversions from '../diversions.js';
|
|
11
10
|
import Utils from '../utils.js';
|
|
12
11
|
import { execSync } from 'node:child_process';
|
|
12
|
+
import Diversions from '../diversions.js';
|
|
13
13
|
/**
|
|
14
14
|
* Kernel utilities for managing vmlinuz and initramfs paths
|
|
15
15
|
*/
|
|
@@ -21,18 +21,23 @@ export default class Kernel {
|
|
|
21
21
|
*/
|
|
22
22
|
static vmlinuz(kernel = '') {
|
|
23
23
|
let vmlinuz = '';
|
|
24
|
-
/**
|
|
25
|
-
* metodo /proc/cmdline
|
|
26
|
-
*/
|
|
27
24
|
if (!Utils.isContainer()) {
|
|
28
|
-
vmlinuz = this.
|
|
25
|
+
vmlinuz = this.vmlinuxFromUname();
|
|
26
|
+
if (vmlinuz === '') {
|
|
27
|
+
vmlinuz = this.vmlinuxFromCmdline();
|
|
28
|
+
if (vmlinuz === '') {
|
|
29
|
+
console.log('vmlinuz not found');
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
29
33
|
}
|
|
30
34
|
else {
|
|
31
|
-
|
|
35
|
+
Utils.warning("cannot work on containers actually!");
|
|
36
|
+
process.exit(1);
|
|
32
37
|
}
|
|
33
38
|
if (!fs.existsSync(vmlinuz)) {
|
|
34
39
|
console.log(`file ${vmlinuz} does not exist!`);
|
|
35
|
-
process.exit();
|
|
40
|
+
process.exit(1);
|
|
36
41
|
}
|
|
37
42
|
return vmlinuz;
|
|
38
43
|
}
|
|
@@ -50,36 +55,40 @@ export default class Kernel {
|
|
|
50
55
|
kernel = execSync('uname -r').toString().trim();
|
|
51
56
|
}
|
|
52
57
|
else {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const latestKernel = kernels[kernels.length - 1];
|
|
56
|
-
kernel = latestKernel;
|
|
58
|
+
Utils.warning("cannot work on containers actually!");
|
|
59
|
+
process.exit(1);
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
// rolling...
|
|
63
|
+
if (distro.familyId === "alpine") {
|
|
64
|
+
let suffix = kernel.substring(kernel.lastIndexOf('-'));
|
|
65
|
+
initramfs = `/boot/initramfs${suffix}`;
|
|
66
|
+
}
|
|
67
|
+
else if (distro.familyId === "archlinux" && (!Diversions.isManjaroBased(distro.distroId))) {
|
|
68
|
+
let suffix = kernel.substring(kernel.lastIndexOf('-'));
|
|
69
|
+
initramfs = `/boot/initramfs-linux${suffix}.img`;
|
|
61
70
|
}
|
|
62
|
-
else if (distro.familyId === "
|
|
63
|
-
|
|
71
|
+
else if (distro.familyId === "archlinux" && (Diversions.isManjaroBased(distro.distroId))) {
|
|
72
|
+
let version = kernel.split('.').slice(0, 2).join('.');
|
|
73
|
+
initramfs = `/boot/initramfs-${version}-x86_64.img`;
|
|
64
74
|
}
|
|
65
75
|
else {
|
|
66
76
|
// Gestione generica per le altre distro (Debian, Fedora, SUSE, ecc.)
|
|
67
|
-
const
|
|
68
|
-
`/boot/initrd.img-${kernel}`, // Debian, Ubuntu
|
|
69
|
-
`/boot/initramfs-${kernel}.img`, // Fedora, RHEL
|
|
77
|
+
const candidates = [
|
|
78
|
+
`/boot/initrd.img-${kernel}`, // Debian, Ubuntu
|
|
79
|
+
`/boot/initramfs-${kernel}.img`, // Fedora, RHEL
|
|
70
80
|
`/boot/initrd-${kernel}`, // openSUSE
|
|
71
|
-
`/boot/initramfs-${kernel}
|
|
81
|
+
`/boot/initramfs-${kernel}`, // fallbacks
|
|
72
82
|
];
|
|
73
|
-
for (const
|
|
74
|
-
if (fs.existsSync(
|
|
75
|
-
initramfs =
|
|
83
|
+
for (const candidate of candidates) {
|
|
84
|
+
if (fs.existsSync(candidate)) {
|
|
85
|
+
initramfs = candidate;
|
|
76
86
|
break;
|
|
77
87
|
}
|
|
78
88
|
}
|
|
79
89
|
}
|
|
80
90
|
if (!fs.existsSync(initramfs)) {
|
|
81
91
|
console.error(`ERROR: initramfs file ${initramfs} does not exist!`);
|
|
82
|
-
this.listAvailableInitramfs();
|
|
83
92
|
process.exit(1);
|
|
84
93
|
}
|
|
85
94
|
return initramfs;
|
|
@@ -87,10 +96,23 @@ export default class Kernel {
|
|
|
87
96
|
/**
|
|
88
97
|
* ALL PRIVATE
|
|
89
98
|
*/
|
|
99
|
+
/**
|
|
100
|
+
* most of the distros:
|
|
101
|
+
* debian, fedora, opensuse, rasberry
|
|
102
|
+
*/
|
|
103
|
+
static vmlinuxFromUname() {
|
|
104
|
+
const kernelVersion = execSync('uname -r').toString().trim();
|
|
105
|
+
let kernelPath = `/boot/vmlinuz-${kernelVersion}`;
|
|
106
|
+
if (fs.existsSync(kernelPath)) {
|
|
107
|
+
return kernelPath;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
return '';
|
|
111
|
+
}
|
|
112
|
+
}
|
|
90
113
|
/**
|
|
91
114
|
* vmlinuxFromCmdline
|
|
92
|
-
*
|
|
93
|
-
* se non è presente - come nel caso di Franco Conidi - lo ricostruisce da initrd
|
|
115
|
+
* raspbery /proc/cmdline dont contain it
|
|
94
116
|
*/
|
|
95
117
|
static vmlinuxFromCmdline() {
|
|
96
118
|
let distro = new Distro();
|
|
@@ -112,7 +134,8 @@ export default class Kernel {
|
|
|
112
134
|
}
|
|
113
135
|
});
|
|
114
136
|
// btrfs: eg: /@root/boot/vmlinuz
|
|
115
|
-
if (vmlinuz.indexOf('@')) {
|
|
137
|
+
//if (vmlinuz.indexOf('@')) {
|
|
138
|
+
if (vmlinuz.includes('@')) {
|
|
116
139
|
let subvolumeEnd = vmlinuz.indexOf('/', vmlinuz.indexOf('@'));
|
|
117
140
|
vmlinuz = vmlinuz.substring(subvolumeEnd);
|
|
118
141
|
}
|
|
@@ -124,260 +147,6 @@ export default class Kernel {
|
|
|
124
147
|
vmlinuz = `/boot${vmlinuz}`;
|
|
125
148
|
}
|
|
126
149
|
}
|
|
127
|
-
/**
|
|
128
|
-
* If vmlinuz not found
|
|
129
|
-
*/
|
|
130
|
-
if (vmlinuz === '') {
|
|
131
|
-
let version = 'linux';
|
|
132
|
-
if (distro.familyId === 'debian') {
|
|
133
|
-
cmdline.forEach(cmd => {
|
|
134
|
-
if (cmd.includes('initrd.img')) {
|
|
135
|
-
version = cmd.substring(cmd.indexOf('initrd.img') + 10);
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
else if (distro.distroId === 'Manjaro') {
|
|
140
|
-
cmdline.forEach(cmd => {
|
|
141
|
-
if (cmd.includes('initrd.img')) {
|
|
142
|
-
version = cmd.substring(cmd.indexOf('initrd.img') + 10);
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
vmlinuz = '/boot/vmlinuz-' + version;
|
|
147
|
-
}
|
|
148
150
|
return vmlinuz;
|
|
149
151
|
}
|
|
150
|
-
/**
|
|
151
|
-
*
|
|
152
|
-
* @param kernel
|
|
153
|
-
* @returns
|
|
154
|
-
*/
|
|
155
|
-
static vmLinuxFromFiles(kernel = '') {
|
|
156
|
-
const distro = new Distro();
|
|
157
|
-
let vmlinuz = '';
|
|
158
|
-
if (kernel === '') {
|
|
159
|
-
// Auto-detection del kernel dai moduli disponibili
|
|
160
|
-
vmlinuz = this.detectKernelFromModules(distro);
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
// Kernel specificato manualmente
|
|
164
|
-
vmlinuz = this.getSpecificKernelPath(kernel, distro);
|
|
165
|
-
}
|
|
166
|
-
// Validazione finale
|
|
167
|
-
if (!fs.existsSync(vmlinuz)) {
|
|
168
|
-
console.error(`ERROR: file ${vmlinuz} does not exist!`);
|
|
169
|
-
console.error('Available kernels in /boot:');
|
|
170
|
-
this.listAvailableKernels();
|
|
171
|
-
process.exit(1);
|
|
172
|
-
}
|
|
173
|
-
return vmlinuz;
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Rileva automaticamente il kernel dai moduli disponibili
|
|
177
|
-
*/
|
|
178
|
-
static detectKernelFromModules(distro) {
|
|
179
|
-
const kernelModulesPath = this.getKernelModulesPath();
|
|
180
|
-
const kernels = this.getAvailableKernels(kernelModulesPath);
|
|
181
|
-
if (kernels.length === 0) {
|
|
182
|
-
throw new Error(`No kernels found in ${kernelModulesPath}`);
|
|
183
|
-
}
|
|
184
|
-
if (distro.familyId === "archlinux") {
|
|
185
|
-
return this.getArchLinuxKernelPath(distro, kernelModulesPath, kernels);
|
|
186
|
-
}
|
|
187
|
-
else if (distro.familyId === "alpine") {
|
|
188
|
-
return `/boot/vmlinuz-lts`;
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
// Per Debian/Ubuntu usa l'ultimo kernel disponibile
|
|
192
|
-
const latestKernel = kernels[kernels.length - 1];
|
|
193
|
-
return `/boot/vmlinuz-${latestKernel}`;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Ottiene il path per un kernel specifico
|
|
198
|
-
*/
|
|
199
|
-
static getSpecificKernelPath(kernel, distro) {
|
|
200
|
-
if (distro.familyId === "archlinux") {
|
|
201
|
-
return this.getArchLinuxSpecificKernel(kernel, distro);
|
|
202
|
-
}
|
|
203
|
-
else if (distro.familyId === "alpine") {
|
|
204
|
-
return `vmlinuz-lts`;
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
return `/boot/vmlinuz-${kernel}`;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Trova la directory dei moduli del kernel
|
|
212
|
-
*/
|
|
213
|
-
static getKernelModulesPath() {
|
|
214
|
-
const possiblePaths = ['/usr/lib/modules', '/lib/modules'];
|
|
215
|
-
for (const path of possiblePaths) {
|
|
216
|
-
if (fs.existsSync(path)) {
|
|
217
|
-
return path;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
throw new Error('No kernel modules directory found');
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Ottiene la lista dei kernel disponibili, ordinati
|
|
224
|
-
*/
|
|
225
|
-
static getAvailableKernels(modulesPath) {
|
|
226
|
-
try {
|
|
227
|
-
const kernels = fs.readdirSync(modulesPath);
|
|
228
|
-
return kernels.sort();
|
|
229
|
-
}
|
|
230
|
-
catch (error) {
|
|
231
|
-
throw new Error(`Cannot read kernel modules from ${modulesPath}: ${error}`);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Gestisce il rilevamento del kernel per Arch Linux
|
|
236
|
-
*/
|
|
237
|
-
static getArchLinuxKernelPath(distro, modulesPath, kernels) {
|
|
238
|
-
if (Diversions.isManjaroBased(distro.distroId)) {
|
|
239
|
-
return this.getManjaroKernelPath(kernels);
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
return this.getStandardArchKernelPath(kernels[0]);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Gestisce il path del kernel per Manjaro
|
|
247
|
-
*/
|
|
248
|
-
static getManjaroKernelPath(kernels) {
|
|
249
|
-
const latestKernel = kernels[kernels.length - 1];
|
|
250
|
-
const versionMatch = latestKernel.match(/^(\d+)\.(\d+)\./);
|
|
251
|
-
if (!versionMatch) {
|
|
252
|
-
throw new Error(`Cannot parse Manjaro kernel version from: ${latestKernel}`);
|
|
253
|
-
}
|
|
254
|
-
const [, major, minor] = versionMatch;
|
|
255
|
-
return `/boot/vmlinuz-${major}.${minor}-x86_64`;
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Gestisce il path del kernel standard per Arch Linux
|
|
259
|
-
*/
|
|
260
|
-
static getStandardArchKernelPath(firstKernel) {
|
|
261
|
-
const kernelTypeMap = [
|
|
262
|
-
{ pattern: '-lts', name: 'linux-lts' },
|
|
263
|
-
{ pattern: '-hardened', name: 'linux-hardened' },
|
|
264
|
-
{ pattern: '-zen', name: 'linux-zen' }
|
|
265
|
-
];
|
|
266
|
-
// Cerca un tipo specifico di kernel
|
|
267
|
-
for (const { pattern, name } of kernelTypeMap) {
|
|
268
|
-
if (firstKernel.includes(pattern)) {
|
|
269
|
-
return `/boot/vmlinuz-${name}`;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
// Default: kernel linux standard
|
|
273
|
-
return '/boot/vmlinuz-linux';
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Gestisce il kernel specifico per Arch Linux
|
|
277
|
-
*/
|
|
278
|
-
static getArchLinuxSpecificKernel(kernel, distro) {
|
|
279
|
-
if (Diversions.isManjaroBased(distro.distroId)) {
|
|
280
|
-
const versionMatch = kernel.match(/^(\d+)\.(\d+)\./);
|
|
281
|
-
if (versionMatch) {
|
|
282
|
-
const [, major, minor] = versionMatch;
|
|
283
|
-
return `/boot/vmlinuz-${major}.${minor}-x86_64`;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
// Cerca i kernel Arch in ordine di preferenza
|
|
287
|
-
const archKernelCandidates = [
|
|
288
|
-
'/boot/vmlinuz-linux',
|
|
289
|
-
'/boot/vmlinuz-linux-lts',
|
|
290
|
-
'/boot/vmlinuz-linux-rt'
|
|
291
|
-
];
|
|
292
|
-
for (const candidate of archKernelCandidates) {
|
|
293
|
-
if (fs.existsSync(candidate)) {
|
|
294
|
-
return candidate;
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
// Se nessun candidato è trovato, prova con il pattern originale
|
|
298
|
-
return `/boot/vmlinuz-${kernel}`;
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Gestisce initramfs per Arch Linux
|
|
302
|
-
*/
|
|
303
|
-
static getArchInitramfs(kernel, distro) {
|
|
304
|
-
if (Diversions.isManjaroBased(distro.distroId)) {
|
|
305
|
-
const versionMatch = kernel.match(/^(\d+)\.(\d+)\./);
|
|
306
|
-
if (versionMatch) {
|
|
307
|
-
const [, major, minor] = versionMatch;
|
|
308
|
-
return `/boot/initramfs-${major}.${minor}-x86_64.img`;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
// Standard Arch initramfs paths
|
|
312
|
-
const archInitramfsCandidates = [
|
|
313
|
-
'/boot/initramfs-linux.img',
|
|
314
|
-
'/boot/initramfs-linux-lts.img',
|
|
315
|
-
'/boot/initramfs-linux-rt.img',
|
|
316
|
-
'/boot/initramfs-linux-zen.img',
|
|
317
|
-
'/boot/initramfs-linux-hardened.img'
|
|
318
|
-
];
|
|
319
|
-
for (const candidate of archInitramfsCandidates) {
|
|
320
|
-
if (fs.existsSync(candidate)) {
|
|
321
|
-
return candidate;
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
// Fallback generico
|
|
325
|
-
return `/boot/initramfs-${kernel}.img`;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Lista i kernel disponibili in /boot per debugging
|
|
329
|
-
*/
|
|
330
|
-
static listAvailableKernels() {
|
|
331
|
-
try {
|
|
332
|
-
const bootFiles = fs.readdirSync('/boot')
|
|
333
|
-
.filter(f => f.startsWith('vmlinuz'))
|
|
334
|
-
.sort();
|
|
335
|
-
if (bootFiles.length > 0) {
|
|
336
|
-
bootFiles.forEach(file => console.error(` - ${file}`));
|
|
337
|
-
}
|
|
338
|
-
else {
|
|
339
|
-
console.error(' No vmlinuz files found in /boot');
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
catch (error) {
|
|
343
|
-
console.error(' Cannot read /boot directory');
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
/**
|
|
347
|
-
* Lista gli initramfs disponibili in /boot per debugging
|
|
348
|
-
*/
|
|
349
|
-
static listAvailableInitramfs() {
|
|
350
|
-
try {
|
|
351
|
-
const bootFiles = fs.readdirSync('/boot')
|
|
352
|
-
.filter(f => f.startsWith('initrd') || f.startsWith('initramfs'))
|
|
353
|
-
.sort();
|
|
354
|
-
if (bootFiles.length > 0) {
|
|
355
|
-
console.error('Available initramfs files in /boot:');
|
|
356
|
-
bootFiles.forEach(file => console.error(` - ${file}`));
|
|
357
|
-
}
|
|
358
|
-
else {
|
|
359
|
-
console.error(' No initramfs files found in /boot');
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
catch (error) {
|
|
363
|
-
console.error(' Cannot read /boot directory');
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
/**
|
|
367
|
-
* Ottiene informazioni sul kernel corrente
|
|
368
|
-
*/
|
|
369
|
-
static getCurrentKernelInfo() {
|
|
370
|
-
try {
|
|
371
|
-
const version = fs.readFileSync('/proc/version', 'utf8').trim();
|
|
372
|
-
const kernelRelease = fs.readFileSync('/proc/sys/kernel/osrelease', 'utf8').trim();
|
|
373
|
-
return {
|
|
374
|
-
version: kernelRelease,
|
|
375
|
-
vmlinuz: this.vmlinuz(kernelRelease),
|
|
376
|
-
initramfs: this.initramfs(kernelRelease)
|
|
377
|
-
};
|
|
378
|
-
}
|
|
379
|
-
catch (error) {
|
|
380
|
-
throw new Error(`Cannot get current kernel info: ${error}`);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
152
|
}
|
package/dist/classes/utils.js
CHANGED
|
@@ -93,12 +93,18 @@ export default class Utils {
|
|
|
93
93
|
* Detect if running inside a container (Docker or LXC)
|
|
94
94
|
*/
|
|
95
95
|
static isContainer() {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
// Check for Docker's specific file
|
|
97
|
+
if (fs.existsSync('/.dockerenv')) {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
// Check the cgroup file, which works for Docker, Podman, LXC, etc.
|
|
101
|
+
try {
|
|
102
|
+
const cgroupContent = fs.readFileSync('/proc/1/cgroup', 'utf8');
|
|
103
|
+
return cgroupContent.includes('/docker/') || cgroupContent.includes('/kubepods/');
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
return false;
|
|
100
107
|
}
|
|
101
|
-
return isContainer;
|
|
102
108
|
}
|
|
103
109
|
/**
|
|
104
110
|
* Check if the system uses Systemd
|
package/dist/commands/cuckoo.js
CHANGED
|
@@ -14,7 +14,8 @@ export default class Cuckoo extends Command {
|
|
|
14
14
|
static description = 'PXE start with proxy-dhcp';
|
|
15
15
|
static examples = ['sudo eggs cuckoo'];
|
|
16
16
|
static flags = {
|
|
17
|
-
help: Flags.help({ char: 'h' })
|
|
17
|
+
help: Flags.help({ char: 'h' }),
|
|
18
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' })
|
|
18
19
|
};
|
|
19
20
|
async run() {
|
|
20
21
|
const { args, flags } = await this.parse(Cuckoo);
|
|
@@ -24,7 +25,7 @@ export default class Cuckoo extends Command {
|
|
|
24
25
|
settings.load();
|
|
25
26
|
const nest = settings.config.snapshot_mnt;
|
|
26
27
|
const pxeRoot = nest + 'pxe';
|
|
27
|
-
const pxe = new Pxe(nest, pxeRoot);
|
|
28
|
+
const pxe = new Pxe(nest, pxeRoot, flags.verbose);
|
|
28
29
|
await pxe.fertilization();
|
|
29
30
|
await pxe.build();
|
|
30
31
|
const n = new network();
|
package/dist/lib/utils.js
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
05498508d7860a84a12a8c8c7aaa9680c6c6743d74b534b6069fafe6bfd46b6f penguins-eggs_25.8.28-1_amd64.deb
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1934d71c93cb97c8d7a728e8ae8617594c9baab385fc371d3c420f3f47394005 penguins-eggs_25.8.28-1_arm64.deb
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c34883fec332c18410b19e7d422b5ab7d9df7a6626a9d449d03a4d12b7c07427 penguins-eggs_25.8.28-1_i386.deb
|
|
Binary file
|