Repository navigation
M.2 Install
This flow stores the OS as a single .img file on the internal NVMe SSD inside a data partition, rather than as a raw root partition. Keeping the OS as a file is more resilient to the PS5 touching the drive, and lets the initramfs loop-mount it at boot.
⚠️ Coexistence caveat. The official guide treats the M.2 as Linux-exclusive. A PS5 soft format is expected to leave the Linux data partition (and therefore the.img) intact, but a repair / hard format will erase it. Back up your image. Format the M.2 in the PS5 before creating the Linux partition.
Build them from the repo's tools/ directory (or copy the prebuilt scripts onto a running Linux):
| Tool | Purpose |
|---|---|
m2_init |
Writes the hidden GPT (--device, --size-gb). |
ps5-osinstall |
Creates the data partition and copies the .img onto it (--target m2, --img, --label). |
ps5-osexec |
kexec into a Linux root partition/label (raw-partition installs). |
-
Boot Linux from the USB image (see Installation).
-
Copy the tools to a writable path (e.g.
/tmp), make them executable. -
Create the hidden GPT and partition:
sudo ./m2_init --device /dev/nvme0n1 --size-gb 128
-
Install the image as a file:
sudo PATH=$PWD:$PATH ./ps5-osinstall --img /mnt/usb/ps5-arch.img \ --target m2 --device /dev/nvme0n1 --size-gb 128 --label PS5M2 --yes
ps5-osinstallwrites aps5-os-imagemarker recording the target, partition label, source image, root label and install time. If the partition already exists it skipsm2_initand reuses it. -
Reboot and send the payload. On boot the initramfs:
- scans the M.2 (NVMe) first, then USB, for a
*.img; - loop-mounts the image;
- hands off to systemd, which mounts the image's own root filesystem.
Boot files (
bzImage/initrd.img/cmdline.txt) still come from the USB root. - scans the M.2 (NVMe) first, then USB, for a
From the booted system:
findmnt / # should show the loop device / image root
lsblk # nvme0n1p1 is the data partition holding the .imgOnce the OS is on the M.2, the only thing still needing a USB was the boot
files (bzImage, initrd.img, cmdline.txt, vram.txt). You can move those
onto the M.2 too:
- Download
ps5-<distro>-boot.tar.gzfrom the release (or extract them from an OS image's boot partition). - Upload them to
/mnt/ext1/via the WebUI file manager or FTP (port 21). - Upload your
.imgto/mnt/ext1/the same way (or runps5-osinstall).
The payload adds /mnt/ext1 to its search paths and tries to mount the M.2
automatically at startup, so the console boots with no USB attached.