Create a GhostBSD USB SSD 500GB or larger size

 Create a GhostBSD USB SSD 500GB or larger size

This is source file I used.  You have to set global environment variable DISK1
in fish shell  set -gx DISK1 /dev/da0

cat  ./create_ssd_GhostBSD.sh


root@omid-ghostbsd-pc /h/o/ssd_test# cat ./create_ssd_Ghostbsd_da1.sh 


#!/bin/sh
set -e
set -x
echo " ${DISK1} <--- This is the DISK1 environmental variable, set example: DISK1=/dev/da1; export DISK1 "
echo " Made for a 500GB size USB to NVMe style SSD disk style SSD disk  "
# echo "If da1 already exists,  use  gpart destroy -F da1  or gpart destroy -F ${DISK1} to clean of partitions on da1 "
sleep 6
gpart list ${DISK1}
gpart status ${DISK1}
gpart show -lp ${DISK1}
echo "  create a GPT scheme on ${DISK1} hit ctrl-C to exit. "
# test if geom disk list da1  ,  then gpart destroy -F ${DISK1}
if gpart status ${DISK1} ;
then
   gpart show -lp ${DISK1}
   echo " Type Ctrl-C  NOW!  to stop destroy ${DISK1}  "
   sleep 6
   gpart destroy -F ${DISK1}
else
echo " ${DISK1} is unformatted , good to create 7 partitions "
fi
sleep 6
gpart create -s GPT ${DISK1}
gpart add -t efi        -a1M -s3G -l msdos_ESP ${DISK1}
gpart add -t freebsd-swap -a1M -s4G -l swapfs ${DISK1}
gpart add -t freebsd-zfs  -a1M -s240G -l rootfs ${DISK1}
gpart add -t linux-swap   -a1M -s2G -l linux-swap ${DISK1}
gpart add -t linux-data   -a1M -s80G -l linux-data ${DISK1}
gpart add -t linux-data   -a1M -s80G -l linux-data2 ${DISK1}
gpart add -t linux-data   -a1M  -l linux-data3 ${DISK1}
echo "Format  ${DISK1}p1 with command newfs_msdos to create ESP EFI FAT32 partition"
newfs_msdos -F 32 -c 1 ${DISK1}"p1"
echo "Completed 7 partitions on  ${DISK1}p1 is the ESP EFI FAT32 partition. "
echo "${DISK1}p2 is the SWAP  partition. "
echo "${DISK1}p3 is the freebsd-zfs boot on root data  partition. "
echo "Other partions are for testing Linux on the Raspberry Pi 4B,3B,400 like Manjaro or POP!_OS "
gpart show -lp ${DISK1}   # show the 7 paritions
root@omid-ghostbsd-pc /h/o/ssd_test#




Running exmple of shell script execution

Create a GhostBSD USB SSD 500GB or larger size
Create a GhostBSD USB SSD 500GB or larger size

tmpfs on /tmp (tmpfs, local)
linsysfs on /compat/linux/sys (linsysfs, local)
fdescfs on /dev/fd (fdescfs)
zroot/tmp on /tmp (zfs, local, nosuid, nfsv4acls)
zroot/var/crash on /var/crash (zfs, local, noexec, nosuid, nfsv4acls)
zroot/usr/ports on /usr/ports (zfs, local, nosuid, nfsv4acls)
zroot/usr/src on /usr/src (zfs, local, nfsv4acls)
zroot/var/audit on /var/audit (zfs, local, noexec, nosuid, nfsv4acls)
zroot/var/mail on /var/mail (zfs, local, nfsv4acls)
zroot/var/tmp on /var/tmp (zfs, local, nosuid, nfsv4acls)
zroot/usr/home on /usr/home (zfs, local, nfsv4acls)
/dev/da0s1 on /media/da0s1 (fusefs)
devfs on /compat/linux/dev (devfs)
fdescfs on /compat/linux/dev/fd (fdescfs)
tmpfs on /compat/linux/dev/shm (tmpfs, local)
root@omid-ghostbsd-pc /h/o/ssd_test# ls -lht /media/da0s1
total 31488
-rwxrwxr-x  1 root  wheel   7.7M Sep  2  2021 SamsungPortableSSD_Setup_Win_1.0.exe*
-rwxrwxr-x  1 root  wheel    23M Sep  2  2021 SamsungPortableSSD_Setup_Mac_1.0.pkg*
-rwxrwxr-x  1 root  wheel   118B Dec 26  2019 Samsung Portable SSD SW for Android.txt*
root@omid-ghostbsd-pc /h/o/ssd_test# ls -lht /media/da0s1/Samsung\ Portable\ SSD\ SW\ for\ Android.txt
-rwxrwxr-x  1 root  wheel   118B Dec 26  2019 /media/da0s1/Samsung Portable SSD SW for Android.txt*
root@omid-ghostbsd-pc /h/o/ssd_test# cat /media/da0s1/Samsung\ Portable\ SSD\ SW\ for\ Android.txt
Please go to the following URL for the Samsung Portable SSD Android application.

http://www.samsung.com/PortableSSD⏎                                                                     root@omid-ghostbsd-pc /h/o/ssd_test# mount
zroot/ROOT/default on / (zfs, local, nfsv4acls)
devfs on /dev (devfs)
procfs on /proc (procfs, local)
linprocfs on /compat/linux/proc (linprocfs, local)
tmpfs on /tmp (tmpfs, local)
linsysfs on /compat/linux/sys (linsysfs, local)
fdescfs on /dev/fd (fdescfs)
zroot/tmp on /tmp (zfs, local, nosuid, nfsv4acls)
zroot/var/crash on /var/crash (zfs, local, noexec, nosuid, nfsv4acls)
zroot/usr/ports on /usr/ports (zfs, local, nosuid, nfsv4acls)
zroot/usr/src on /usr/src (zfs, local, nfsv4acls)
zroot/var/audit on /var/audit (zfs, local, noexec, nosuid, nfsv4acls)
zroot/var/mail on /var/mail (zfs, local, nfsv4acls)
zroot/var/tmp on /var/tmp (zfs, local, nosuid, nfsv4acls)
zroot/usr/home on /usr/home (zfs, local, nfsv4acls)
/dev/da0s1 on /media/da0s1 (fusefs)
devfs on /compat/linux/dev (devfs)
fdescfs on /compat/linux/dev/fd (fdescfs)
tmpfs on /compat/linux/dev/shm (tmpfs, local)
root@omid-ghostbsd-pc /h/o/ssd_test# umount /dev/da0s1
root@omid-ghostbsd-pc /h/o/ssd_test# ./create_ssd_Ghostbsd_da1.sh
+ echo ' /dev/da0 <--- This is the DISK1 environmental variable, set example: DISK1=/dev/da1; export DISK1 '
 /dev/da0 <--- This is the DISK1 environmental variable, set example: DISK1=/dev/da1; export DISK1
+ echo ' Made for a 500GB size USB to NVMe style SSD disk style SSD disk  '
 Made for a 500GB size USB to NVMe style SSD disk style SSD disk  
+ sleep 6
+ gpart list /dev/da0
Geom name: da0
modified: false
state: OK
fwheads: 255
fwsectors: 63
last: 976773167
first: 63
entries: 4
scheme: MBR
Providers:
1. Name: da0s1
   Mediasize: 500105249280 (466G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 1048576
   Mode: r0w0e0
   efimedia: HD(1,MBR,0x4d4b3e9b,0x800,0x3a384c41)
   rawtype: 7
   length: 500105249280
   offset: 1048576
   type: ntfs
   index: 1
   end: 976770112
   start: 2048
Consumers:
1. Name: da0
   Mediasize: 500107862016 (466G)
   Sectorsize: 512
   Mode: r0w0e0

+ gpart status /dev/da0
 Name  Status  Components
da0s1      OK  da0
+ gpart show -lp /dev/da0
=>       63  976773105    da0  MBR  (466G)
         63       1985         - free -  (993K)
       2048  976768065  da0s1  (null)  (466G)
  976770113       3055         - free -  (1.5M)

+ echo '  create a GPT scheme on /dev/da0 hit ctrl-C to exit. '
  create a GPT scheme on /dev/da0 hit ctrl-C to exit.
+ gpart status /dev/da0
 Name  Status  Components
da0s1      OK  da0
+ gpart show -lp /dev/da0
=>       63  976773105    da0  MBR  (466G)
         63       1985         - free -  (993K)
       2048  976768065  da0s1  (null)  (466G)
  976770113       3055         - free -  (1.5M)

+ echo ' Type Ctrl-C  NOW!  to stop destroy /dev/da0  '
 Type Ctrl-C  NOW!  to stop destroy /dev/da0  
+ sleep 6
+ gpart destroy -F /dev/da0
da0 destroyed
+ sleep 6
+ gpart create -s GPT /dev/da0
da0 created
+ gpart add -t efi -a1M -s3G -l msdos_ESP /dev/da0
da0p1 added
+ gpart add -t freebsd-swap -a1M -s4G -l swapfs /dev/da0
da0p2 added
+ gpart add -t freebsd-zfs -a1M -s240G -l rootfs /dev/da0
da0p3 added
+ gpart add -t linux-swap -a1M -s2G -l linux-swap /dev/da0
da0p4 added
+ gpart add -t linux-data -a1M -s80G -l linux-data /dev/da0
da0p5 added
+ gpart add -t linux-data -a1M -s80G -l linux-data2 /dev/da0
da0p6 added
+ gpart add -t linux-data -a1M -l linux-data3 /dev/da0
da0p7 added
+ echo 'Format  /dev/da0p1 with command newfs_msdos to create ESP EFI FAT32 partition'
Format  /dev/da0p1 with command newfs_msdos to create ESP EFI FAT32 partition
+ newfs_msdos -F 32 -c 1 /dev/da0p1
/dev/da0p1: 6194632 sectors in 6194632 FAT32 clusters (512 bytes/cluster)
BytesPerSec=512 SecPerClust=1 ResSectors=32 FATs=2 Media=0xf0 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=6291456 FATsecs=48396 RootCluster=2 FSInfo=1 Backup=2
+ echo 'Completed 7 partitions on  /dev/da0p1 is the ESP EFI FAT32 partition. '
Completed 7 partitions on  /dev/da0p1 is the ESP EFI FAT32 partition.
+ echo '/dev/da0p2 is the SWAP  partition. '
/dev/da0p2 is the SWAP  partition.
+ echo '/dev/da0p3 is the freebsd-zfs boot on root data  partition. '
/dev/da0p3 is the freebsd-zfs boot on root data  partition.
+ echo 'Other partions are for testing Linux on the Raspberry Pi 4B,3B,400 like Manjaro or POP!_OS '
Other partions are for testing Linux on the Raspberry Pi 4B,3B,400 like Manjaro or POP!_OS
+ gpart show -lp /dev/da0
=>       40  976773088    da0  GPT  (466G)
         40       2008         - free -  (1.0M)
       2048    6291456  da0p1  msdos_ESP  (3.0G)
    6293504    8388608  da0p2  swapfs  (4.0G)
   14682112  503316480  da0p3  rootfs  (240G)
  517998592    4194304  da0p4  linux-swap  (2.0G)
  522192896  167772160  da0p5  linux-data  (80G)
  689965056  167772160  da0p6  linux-data2  (80G)
  857737216  119035904  da0p7  linux-data3  (57G)
  976773120          8         - free -  (4.0K)

root@omid-ghostbsd-pc /h/o/ssd_test#


root@omid-ghostbsd-pc /h/o/ssd_test# cat ./create_GhostBSD_Amd64_ZPOOL_ZFS_on_DISK1.sh
#!/bin/sh
#https://gist.github.com/jwatzman/8a53dcdd3084d595c6d5918f4a2a0527  
echo " Modified April 2 2024 by Fred Finster for GhostBSD-Amd64 & FreeBSD 14.0 ZPOOL ZFS sets."
echo "DISK1 environmental variable is set to '${DISK1}' click Ctrl-C to exit now! "
sleep 12

# if [ ! -f /mnt/COPYRIGHT ]
if [ ! -f /COPYRIGHT ]
then
    echo "Forgot to mount disk image, missing file COPYRIGHT in this directory / "
    exit 1
fi

set -e
set -x

# Ensure the script is run as root
if [ "$(id -u)" -ne 0 ]; then
    echo "This script must be run as root" >&2
    exit 1
fi
zpool destroy zpi || true
# zpool create -O compress=lz4 -O atime=off -o altroot=/zpialt -m none zpi da1s2
# zpool create -O compress=lz4 -O atime=off -o altroot=/zpialt -m none zpi /dev/da1p3  # /dev/gpt/rootfs same as existing /dev/gpt/rootfs for /dev/da0p3
echo " creating zpool 'zpi' from single partition vdev '${DISK1}"p3"' " ;  sleep 5
zpool create -O compress=lz4 -O atime=off -o altroot=/zpialt -m none zpi $DISK1"p3"  # /dev/gpt/rootfs same as existing /dev/gpt/rootfs for /dev/da0p3


zfs create -o mountpoint=none zpi/ROOT
zfs create -o mountpoint=/ zpi/ROOT/default
zfs create -o mountpoint=/tmp -o exec=on -o setuid=off zpi/tmp
zfs create -o mountpoint=/usr -o canmount=off zpi/usr
# zfs create zpi/usr/home  # the old method of '/usr/home' before 14.0-RELEASE
zfs create zpi/home
zfs create -o setuid=off zpi/usr/ports
zfs create zpi/usr/src
zfs create -o mountpoint=/var -o canmount=off zpi/var
zfs create -o exec=off -o setuid=off zpi/var/audit
zfs create -o exec=off -o setuid=off zpi/var/crash
zfs create -o exec=off -o setuid=off zpi/var/log
zfs create -o atime=on zpi/var/mail
zfs create -o setuid=off zpi/var/tmp
zfs create -o mountpoint=/poudriere  -o canmount=off zpi/poudriere
zfs create -o mountpoint=/poudriere/jails  -o canmount=off zpi/poudriere/jails
zfs create -o mountpoint=/poudriere/ports  -o canmount=off zpi/poudriere/ports  

zfs set mountpoint=/zpi zpi

chmod 1777 /zpialt/tmp
chmod 1777 /zpialt/var/tmp

zpool set bootfs=zpi/ROOT/default zpi

zfs set canmount=noauto zpi/ROOT/default

echo "Copying files from root directory of GhostBSD ada0 drive to /zpialt ZPI ZPOOL files " pause 3
# cd /mnt
cd /
tar cf - . | ( cd /zpialt && tar xvf - )

echo 'zfs_load="YES"' >> /zpialt/boot/loader.conf
echo 'kern.geom.label.disk_ident.enable=0' >> /zpialt/boot/loader.conf
#echo 'kern.geom.label.gptid.enable=0' >> /zpialt/boot/loader.conf
sed -i '' '/boot_serial/ s/^/#/' /zpialt/boot/loader.conf
sed -i '' '/beastie_disable/ s/^/#/' /zpialt/boot/loader.conf

echo 'zfs_enable="YES"' >> /zpialt/etc/rc.conf

sed -i '' /ufs/d /zpialt/etc/fstab

zpool export zpi
echo " zpool import ; to see this zpool ;  zfs list  ;  Finished creating a bootable ZFS USB SSD for GhostBSD 24.01.01 or later version"
zpool import
zfs list

$ sudo fdisk -l
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 870
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: F14FD80A-9A3C-472C-8180-F3A998215DD5

Device         Start       End   Sectors  Size Type
/dev/sda1       2048   6758399   6756352  3.2G EFI System
/dev/sda2    6758400  67108863  60350464 28.8G Microsoft basic data
/dev/sda3   67108864 132120575  65011712   31G Linux root (x86)
/dev/sda4  132120576 186646527  54525952   26G Linux root (x86)
/dev/sda5  186646528 293601279 106954752   51G FreeBSD ZFS
/dev/sda6  293601280 673185791 379584512  181G FreeBSD ZFS
/dev/sda7  673185792 681574399   8388608    4G Linux root (x86)
/dev/sda8  681574400 700448767  18874368    9G FreeBSD swap
/dev/sda9  700448768 765460479  65011712   31G Linux filesystem
/dev/sda10 765460480 838860799  73400320   35G Linux filesystem
/dev/sda11 838860800 872415231  33554432   16G Intel Fast Flash
/dev/sda12 872415232 872517631    102400   50M Microsoft basic data
/dev/sda13        40       551       512  256K FreeBSD boot
/dev/sda14 872517632 972572671 100055040 47.7G FreeBSD ZFS
/dev/sda15 972572672 976766975   4194304    2G FreeBSD swap

Partition table entries are not in disk order.


Disk /dev/sdb: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: PSSD T7         
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: D4AD3C58-24B6-433F-BCED-8081A4AD18C5

Device          Start        End    Sectors   Size Type
/dev/sdb1        2048    6293503    6291456     3G EFI System
/dev/sdb2     6293504  111151103  104857600    50G Microsoft basic data
/dev/sdb3   111151104  320866303  209715200   100G Linux filesystem
/dev/sdb4   320866304  530581503  209715200   100G Linux filesystem
/dev/sdb5   530581504 1886416895 1355835392 646.5G FreeBSD ZFS
/dev/sdb6  1886416896 1919971327   33554432    16G Linux filesystem
/dev/sdb7  1919971328 1936748543   16777216     8G Linux swap
/dev/sdb8  1936748544 1953523711   16775168     8G FreeBSD swap


Disk /dev/sdc: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: PSSD T7         
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: 22108170-F0BC-11EE-8F77-54EE75417CD8

Device         Start       End   Sectors  Size Type
/dev/sdc1       2048   6293503   6291456    3G EFI System
/dev/sdc2    6293504  14682111   8388608    4G FreeBSD swap
/dev/sdc3   14682112 517998591 503316480  240G FreeBSD ZFS
/dev/sdc4  517998592 522192895   4194304    2G Linux swap
/dev/sdc5  522192896 689965055 167772160   80G Linux filesystem
/dev/sdc6  689965056 857737215 167772160   80G Linux filesystem
/dev/sdc7  857737216 976773119 119035904 56.8G Linux filesystem
mxme@mx16-Klik:~/Documents/Packaging_Documentation_FreeBSD
$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=3974792k,nr_inodes=993698,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=600,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=803488k,mode=755)
/dev/sda3 on / type ext4 (rw,noatime)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
securityfs on /sys/kernel/security type securityfs (rw,relatime)
pstore on /sys/fs/pstore type pstore (rw,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=2445820k)
/dev/sda4 on /home type ext4 (rw,noatime)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
cgroup on /sys/fs/cgroup type tmpfs (rw,relatime,size=12k,mode=755)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/run/cgmanager/agents/cgm-release-agent.systemd,name=systemd)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=803484k,mode=700,uid=1000,gid=1000)
/dev/sdb3 on /media/mxme/Linux1 type ext4 (rw,nosuid,nodev,relatime,errors=remount-ro,stripe=8191,uhelper=udisks2)
tmpfs on /run/user/115 type tmpfs (rw,nosuid,nodev,relatime,size=803484k,mode=700,uid=115,gid=124)
/dev/sdb2 on /media/mxme/637F-EFC4 type exfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,iocharset=utf8,errors=remount-ro,uhelper=udisks2)
/dev/sdb4 on /media/mxme/Impish21 type ext4 (rw,nosuid,nodev,relatime,errors=remount-ro,stripe=8191,uhelper=udisks2)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
mxme@mx16-Klik:~/Documents/Packaging_Documentation_FreeBSD
$ ls /mnt
sda12  sda4  sdb1  sdb2  sdb3  sdb4  sdb5  sdb6  sdc1  sdc2
mxme@mx16-Klik:~/Documents/Packaging_Documentation_FreeBSD
$ mount -t msdosfs /dev/sdc1 /mnt/sdc1
mount: /mnt/sdc1: must be superuser to use mount.
mxme@mx16-Klik:~/Documents/Packaging_Documentation_FreeBSD
$ sudo mount -t msdosfs /dev/sdc1 /mnt/sdc1
mount: /mnt/sdc1: unknown filesystem type 'msdosfs'.
mxme@mx16-Klik:~/Documents/Packaging_Documentation_FreeBSD
$ gdisk /dev/sdc
GPT fdisk (gdisk) version 1.0.6

Problem opening /dev/sdc for reading! Error is 13.
You must run this program as root or use sudo!
mxme@mx16-Klik:~/Documents/Packaging_Documentation_FreeBSD
$ sudo gdisk /dev/sdc
GPT fdisk (gdisk) version 1.0.6

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sdc: 976773168 sectors, 465.8 GiB
Model: PSSD T7         
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 22108170-F0BC-11EE-8F77-54EE75417CD8
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 40, last usable sector is 976773127
Partitions will be aligned on 2048-sector boundaries
Total free space is 2016 sectors (1008.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         6293503   3.0 GiB     EF00  msdos_ESP
   2         6293504        14682111   4.0 GiB     A502  swapfs
   3        14682112       517998591   240.0 GiB   A504  rootfs
   4       517998592       522192895   2.0 GiB     8200  linux-swap
   5       522192896       689965055   80.0 GiB    8300  linux
 
 
-data
   6       689965056       857737215   80.0 GiB    8300  linuta2
   7       857737216       976773119   56.8 GiB    8300  linux-data3

Command (? for help): q
Finished using gdisk /dev/sdc on MX Linux 21 to view partitions

find the newer Install .ISO file to download

Create EXT4 file systems on a partition,  examples:


$ ls -l /etc/mk*
-rw-r--r-- 1 root root 812 Jun  7  2021 /etc/mke2fs.conf

$ mkfs.ext4 /dev/sda1
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 26104 4k blocks and 65408 inodes
Filesystem UUID: 2fc39a9c-faee-45c6-9651-8e25963739da
Superblock backups stored on blocks:
32768, 98304
Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done

The commonly used parameters

  • -L Assigns a volume label to the file system.
$ mkfs.ext4 -L my_volume /dev/sda1
  • -n Performs a dry run without actually creating a file system.
$ mkfs.ext4 -n /dev/sda1
This is a dry run and no file system will be created.
 
 mkfs.ext4 -L MX 
sudo mkfs.ext4 -L MXLinux232  /dev/sdc7

[sudo] password for mxme:
mke2fs 1.46.2 (28-Feb-2021)
Creating filesystem with 14879488 4k blocks and 3720080 inodes
Filesystem UUID: 0ba43485-c452-440e-bf1f-81110aea8feb
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done

Linux232 /dev/sdc7
mkdir -p  /mnt/sdc7
 
sudo mount /dev/sdc7 /mnt/sdc7
$ mount /dev/sdc7
mount: /dev/sdc7: can't find in /etc/fstab.
mxme@mx16-Klik:/mnt
$ mount | grep sdc7
/dev/sdc7 on /mnt/sdc7 type ext4 (rw,relatime,stripe=8191)
mxme@mx16-Klik:/mnt
$ cd sdc7
mxme@mx16-Klik:/mnt/sdc7
$ ls
lost+found
mxme@mx16-Klik:/mnt/sdc7
$ df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/sdc7 56G 24K 53G 1% /mnt/sdc7
mkdir  ./isos
cd ./isos
curl -O 

URLs Instructions to install MX Linux and ZorinOS 17 to disk and Dual Boot with Windows

Linux O/S Download Source locations:

https://sourceforge.net/projects/mx-linux/ Place to download MX Linux April 15, 2024
http://zorinos.org/zorinos/isos/17/  Place to download ZorinOS ISO file and other Linuxes

Actual curl -O  download command lines:

$ curl -O  https://netactuate.dl.sourceforge.net/project/mx-linux/Snapshots/MX-23.2_April_x64.iso
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 2180M  100 2180M    0     0   303k      0  2:02:43  2:02:43 --:--:--  408k
 
$ curl -O http://zorinos.org/zorinos/isos/17/Zorin-OS-17.1-Education-64-bit-r1.iso
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 6882M  100 6882M    0     0  4485k      0  0:26:11  0:26:11 --:--:-- 2893k
 

Instructions on Linux install to disk and Dual booting with Windows

How to Install MX Linux Step-by-Step Guide

https://www.debugpoint.com/install-mx-linux/ 
General Tips for Dual booting MX Linux and POP!_OS
https://www.reddit.com/r/DistroHopping/comments/18bdu30/any_general_tips_for_dual_booting_mx_linux_and/

    
       

 

Doesn't matter whichever you install first, both distros are exactly same ubuntu forks (overall debian forks) with different branding, theming and some different repositories preconfigured.

Most common UEFI partition scheme for all linux distros in general:

  1. EFI System partition :: mounted at: /boot/efi (min. 200 MB, Recommended: 512-600 MB), Filesystem: fat32

  2. Linux Swap Partition (optional)

  3. Root Partition :: mounted at / (min. 30 GB), Filesystem: ext4 (Recommended for debian based distros).

Rest other partitions: /home, /usr, /var are totally optional and not necessary.

So, if i wanted to dual boot MX linux and Pop Os, My GPT partition table might have look like:

Example: For a drive having 512 GB space:

  1. EFI system Partition (for pop) 600 MB

  2. Swap (for pop) 8GB

  3. Root Partition (for pop) 240 GB

  4. EFI system Partition (for mx) 600 MB

  5. Swap (for mx) 8GB

  6. Root Partition (for MX) rest of the space.

Notice that I've created separate EFI system Partitions and swap partitions for both the distros. Some people might say this an overkill, but this will provide more stability.

You can also just go with a common EFI system partition and linux swap if you want.

In that case partition scheme will look like:

  1. EFI system partition (for both)

  2. Swap Partition (for both)

  3. Pop root Partition

  4. MX root Partition

 
Date April 20, 2024
 

 He does the following:

1gb efi partition (can probably get away with less but I have plenty of space)

40 gb root

16gb swap

the rest as a home partition

Install ZorinOS 17 to manual partitioned disk

https://help.zorin.com/docs/getting-started/install-zorin-os/ 

  1. Follow the on-screen instructions to start the installation.
  2. When prompted by the installer, please connect to the Internet (if possible). This makes sure all necessary software gets downloaded during the installation process.
  3. You should reach a step titled “Installation type”.
  4. Continue following the on-screen instructions to complete the installation.
  5. After the installation completes, restart the computer to boot into your installed copy of Zorin OS.
 

These are the minimum hardware specifications required to install Zorin OS on a computer. If your computer doesn’t meet these requirements, you might not be able to run Zorin OS on it.

  • CPU: 1 GHz Dual Core – Intel/AMD 64-bit processor
  • RAM: 1½ GB
  • Storage: 15 GB (Core), 32 GB (Education), or 40 GB (Pro)
  • Display: 1024 × 768 resolution
 I selected 32 GB (education) model file.
    • For Linux - CLI mode

Download the installation package, like ventoy-x.x.xx-linux.tar.gz and decompress it.
Run the shell script as root sh Ventoy2Disk.sh { -i | -I | -u } /dev/XXX   XXX is the USB device, for example /dev/sdb.

Attention that the USB drive will be formatted and all the data will be lost after install.
You just need to install Ventoy once, after that all the things needed is to copy the iso files to the USB.
You can also use it as a plain USB drive to store files and this will not affact Ventoy's function. 
 
 
mxme@mx16-Klik:~/Ventoy/ventoy-1.0.97
$ sh Ventoy2Disk.sh  -i-l -g  /dev/sdd

**********************************************
      Ventoy: 1.0.97  x86_64
      longpanda admin@ventoy.net
      https://www.ventoy.net
**********************************************

-i-l is NOT a valid device
Usage:  Ventoy2Disk.sh CMD [ OPTION ] /dev/sdX
  CMD:
   -i  install Ventoy to sdX (fails if disk already installed with Ventoy)
   -I  force install Ventoy to sdX (no matter if installed or not)
   -u  update Ventoy in sdX
   -l  list Ventoy information in sdX

  OPTION: (optional)
   -r SIZE_MB  preserve some space at the bottom of the disk (only for install)
   -s/-S       enable/disable secure boot support (default is enabled)
   -g          use GPT partition style, default is MBR (only for install)
   -L          Label of the 1st exfat partition (default is Ventoy)
   -n          try non-destructive installation (only for install)

mxme@mx16-Klik:~/Ventoy/ventoy-1.0.97
$ sh Ventoy2Disk.sh -l   /dev/sdd

**********************************************
      Ventoy: 1.0.97  x86_64
      longpanda admin@ventoy.net
      https://www.ventoy.net
**********************************************

Ventoy Version: NA

mxme@mx16-Klik:~/Ventoy/ventoy-1.0.97
$ sh Ventoy2Disk.sh -i -g   /dev/sdd

**********************************************
      Ventoy: 1.0.97  x86_64
      longpanda admin@ventoy.net
      https://www.ventoy.net
**********************************************

Failed to access /dev/sdd, maybe root privilege is needed!

mxme@mx16-Klik:~/Ventoy/ventoy-1.0.97
$ sudo sh Ventoy2Disk.sh -i -g   /dev/sdd
[sudo] password for mxme:

**********************************************
      Ventoy: 1.0.97  x86_64
      longpanda admin@ventoy.net
      https://www.ventoy.net
**********************************************

Disk : /dev/sdd
Model: General USB Flash Disk (scsi)
Size : 28 GB
Style: GPT


Attention:
You will install Ventoy to /dev/sdd.
All the data on the disk /dev/sdd will be lost!!!

Continue? (y/n) y

All the data on the disk /dev/sdd will be lost!!!
Double-check. Continue? (y/n) y

Create partitions on /dev/sdd by parted in GPT style ...
Done
Wait for partitions ...
partition exist OK
create efi fat fs /dev/sdd2 ...
mkfs.fat 4.2 (2021-01-31)
success
Wait for partitions ...
Wait for /dev/sdd1//dev/sdd2 ...
/dev/sdd1 exist OK
/dev/sdd2 exist OK
partition exist OK
Format partition 1 /dev/sdd1 ...
mkexfatfs 1.3.0
Creating... done.
Flushing... done.
File system created successfully.
mkexfatfs success
writing data to disk ...
sync data ...
esp partition processing ...

Install Ventoy to /dev/sdd successfully finished.

mxme@mx16-Klik:~/Ventoy/ventoy-1.0.97
$ sudo fdisk -l /dev/sdd
Disk /dev/sdd: 28.91 GiB, 31037849600 bytes, 60620800 sectors
Disk model: USB Flash Disk  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 570F9588-4DD9-41D8-88A7-FC213FEEC24D

Device        Start      End  Sectors  Size Type
/dev/sdd1      2048 60555223 60553176 28.9G Microsoft basic data
/dev/sdd2  60555224 60620759    65536   32M Microsoft basic data
mxme@mx16-Klik:~/Ventoy/ventoy-1.0.97
$ sudo gparted /dev/sdd
GParted 1.2.0
configuration --enable-libparted-dmraid --enable-online-resize
libparted 3.4
mxme@mx16-Klik:~/Ventoy/ventoy-1.0.97
$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=3974792k,nr_inodes=993698,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=600,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=803488k,mode=755)
/dev/sda3 on / type ext4 (rw,noatime)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
securityfs on /sys/kernel/security type securityfs (rw,relatime)
pstore on /sys/fs/pstore type pstore (rw,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=2445820k)
/dev/sda4 on /home type ext4 (rw,noatime)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
cgroup on /sys/fs/cgroup type tmpfs (rw,relatime,size=12k,mode=755)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/run/cgmanager/agents/cgm-release-agent.systemd,name=systemd)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=803484k,mode=700,uid=1000,gid=1000)
/dev/sdb3 on /media/mxme/Linux1 type ext4 (rw,nosuid,nodev,relatime,errors=remount-ro,stripe=8191,uhelper=udisks2)
tmpfs on /run/user/115 type tmpfs (rw,nosuid,nodev,relatime,size=803484k,mode=700,uid=115,gid=124)
/dev/sdb2 on /media/mxme/637F-EFC4 type exfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,iocharset=utf8,errors=remount-ro,uhelper=udisks2)
/dev/sdb4 on /media/mxme/Impish21 type ext4 (rw,nosuid,nodev,relatime,errors=remount-ro,stripe=8191,uhelper=udisks2)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
/dev/sdc7 on /mnt/sdc7 type ext4 (rw,relatime,stripe=8191)
/dev/sdd2 on /media/mxme/VTOYEFI type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
/dev/sdd1 on /media/mxme/Ventoy type exfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,iocharset=utf8,errors=remount-ro,uhelper=udisks2)
mxme@mx16-Klik:~/Ventoy/ventoy-1.0.97
$ cd /mnt/sdc7/iso
mxme@mx16-Klik:/mnt/sdc7/iso
$ ls
MX-23.2_April_x64.iso  Zorin-OS-17.1-Education-64-bit-r1.iso
mxme@mx16-Klik:/mnt/sdc7/iso

$ ls -l
total 9280140
-rw-r--r-- 1 mxme mxme 2285895680 Apr 20 11:02 MX-23.2_April_x64.iso
-rw-r--r-- 1 mxme mxme 7216957440 Apr 20 09:35 Zorin-OS-17.1-Education-64-bit-r1.iso
mxme@mx16-Klik:/mnt/sdc7/iso

Copy .iso files to Ventoy directory

$ cp -p *.iso  /media/mxme/Ventoy/
$ ls -l /media/mxme/Ventoy
total 9280160
-rwxr-xr-x 1 mxme mxme 2285895680 Apr 20 11:02 MX-23.2_April_x64.iso
-rwxr-xr-x 1 mxme mxme 7216957440 Apr 20 09:35 Zorin-OS-17.1-Education-64-bit-r1.iso
  @longpanda:
Please send a documentation or a help file how to use the EFI boot files snponly.efi, snp.efi and ipxe.efi, thank you. 
Hello.

I'm trying to run iVentoy on Raspberry Pi OS Desktop 11 and an error appears, on Debian 12 it's normal, no errors. My goal is run iVentoy on Raspberry Pi OS Lite using a Raspberry Pi 4.
Note: I used chmod 777 on the iVentoy folder in both versions.
 
Feature Suggestions for MSP/IT Admins:

1. Perhaps there is a "new PXE client" configuration (or "boot once" configuration) that can be used just to get the machine to boot into an ISO just one time.
1a. Also allow selection for injections/auto install script, etc.
2. Control which network interface the GUI can be accessed from (so not just 127.0.0.1:26000). Only allow once a username and password have been set.
3. Add image file upload capability to the GUI which will save files to the ISO location
3a. Configure the locations to search for ISO files on the server (not just the ISO location)
4. Perhaps when a machine boots to the iVentoy menu, the iVentoy web interface can allow us to control/select the option currently displaying on the endpoint instead of having to have a mouse/keyboard/monitor on the endpoint (which would help for remote reinstall scenarios). This may be difficult to implement but would be very useful.
5. Would like a command line option to use as a Windows Service (no GUI) so that when the PXE server is rebooted, iVentoy will start running again automatically.

I would very happily consider donation over and above the $49 commercial donation for these features. 
For PXE, there is a server machine and many client machines.
The server machine run iVentoy, and all the client machines boot from network and download boot files from the server machine.

iVentoy can only run on x86 CPU as the PXE server,  that is to say the server machine can only be x86 CPU.
The client machines can be x86/ARM64 CPU.
 
This is VERY strange, I've just setup iVentoy on my Windows 10 PC and it works perfectly! And YES, my PC IS 64-bit, it's an AMD RYZEN 9 5900X so it's definitely 64bit, running Windows 10... Yup you got it, 64 bit, and get this, I am using it to install the 64bit version of Windows 8.1 on my laptop... Thats ALSO 64 bit!! So why can it work on my PC but NOT on Raspberry Pi?? If you could make a version that'd work on that I'd definitely be interested! In fact, I'm so impressed with the PC version I AM going to buy the pro licence as a thank you, thank you for the current build, and thank you for future versions  Big Grin Big Grin Big Grin
Still, your Raspberry has an ARM processor. iVentoy would need to be compiled for armhf or aarch64 (depending which raspberry).

Currently it's only for i386 / amd64 (which your Ryzen is).

So, not strange at all. 
Hello!

First of all, I want to thank you for a great project!

In my network, I use a small server based on a former TV set-top box, which is built on ARM (armv7l), it runs a small armbian distribution based on Debian. And I faced a problem - I can't run iVentoy directly on this system - because the binaries are only for x86 and x86_64 architecture. I even managed to start iVentoy with "qemu-user-static" emulation, but in iVentoy settings (Boot Information - IP Configuration) Select Server IP = 0.0.0.0 and "NIC Name" - not defined. Apparently there are some limitations of QEMU emulation regarding the network subsystem. Therefore, starting the PXE Service is not possible.

So, I want to ask if you plan to create binaries for the ARM 32 architecture? 
https://forums.ventoy.net/showthread.php?tid=2645 
NO.
Only x86 arch will be supported.
 
I managed to boot iVentoy, but it just refuses to boot any ISO that I have. The screenshot attached is when booting TinyCore-Current.iso. 

In fact, none of the ISO in my list works.

Any ideas?
Maybe your ISOs do not support UEFI booting ?
try legacy/BIOS booting instead.
 
nguyen ha thai trong Wrote: I guess as Steve2926 said, your tiny.iso is missing the grubx64.efi file used to boot in uefi modeYou are right. I missed the differece between efi and bios mode.

I was just too focusing on their list and thought since it was on the list it must be able to boot.

I changed to bios mode and it works fine now. 

Making a mini computer from scratch with raspberry pi and linux

 
https://twitter.com/popovicu94/status/1772101859257290926 Inspect Flash memory on a Linux board, preferable u-boot
https://dzone.com/articles/loop-device-in-linux Use a loop back device in Linux.

Making a mini computer from scratch with raspberry pi and GhostBSD-Arm64

https://ghostbsd-arm64.blogspot.com  Jan 19  image Feb27_2.img

 AM Radio using a 741
 
 
 
 
 
 
 
 

Comments

Popular posts from this blog

FreeBSD 14.0 Compiling kernel for Raspberry Pi 4B

HDMI Audio sound patches into GhostBSD source code /usr/ghost14/ghostbsd-src SOLVED Jan20 2024

How to install GhostBSD-Arm64 into a USB Flash Drive stick April 24, 2024 update edition.