If you are familiar with Secure Shell Protocol (SSH), then you can try to restore the disk image on the SSH server to the target machine's storage.
This saves time to copy a heavy image into the Endless OS Reformatter USB. And, the speed of transmission from server's internal storage through Local Area Network (LAN) is usually faster then USB read IO.
You will need an SSH server and a LiveUSB. And, Local Area Network (LAN) is preferred.
If you do not have an SSH server, you can make an Endless OS system become the SSH server by starting SSH service:
systemctl start ssh.service
Note: The account going to login to the SSH server must have a password.
Get the image and signature files shared by Endless OS. And, put them on the SSH server. For example:
$ ls ~/Downloads/
eos-eos6.0-amd64-amd64.250109-205325.base.img.xz
eos-eos6.0-amd64-amd64.250109-205325.base.img.xz.asc
Please follow Download verification to verify the image.
Prepare a Live USB for the commands ssh
, zcat
, xzcat
and dd
. If you don't have, you can follow Create an Endless OS USB Stick to install or evaluate Endless OS's Using GNOME Disks to flash an image (Linux) to create one.
Boot the system on the Live USB on the target machine by following Using the Endless OS USB Stick. But, do not choose Reformat this computer with Endless OS
. Choose Try Endless OS by running it from the USB stick
, instead.
After login to the system, check which storage is going to be flashed as Endless OS system. For example, I use Disks
to find the NVMe disk that is going to be flashed as Endless OS system. And, it is enumerated as /dev/nvme0n1
.
Open Terminal as console, then flash the image on the SSH server to the target disk.
The basic idea is: cat
the image on the SSH server and pipe the output to decompress command. And, pipe the decompressed output as dd
command's input FILE. dd
command's output file should be the target disk of the target machine. And, dd
to the target disk needs authorized privilege. The overall command will be:
ssh <account>@<SSH server> "cat <source image's full path>" | xzcat | sudo dd of=<enumerated target disk's full path> bs=16M status=progress; sync
-p <ssh port number>
. You can consult ssh --help
for more detail information.xzcat
.zcat
.Here is an example: I place the compressed source image on the SSH server (IP: 192.168.200.59). The compressed source image's extension is ".xz". So, use xzcat
to decompress it as raw format. Then, flash the decompressed raw image to target disk /dev/nvme0n1
on the target machine.
ssh demo@192.168.200.59 "cat ~/Downloads/eos-eos6.0-amd64-amd64.250109-205325.base.img.xz" | xzcat | sudo dd of=/dev/nvme0n1 bs=16M status=progress; sync
After flash the disk successfully, poweroff the system and unplug the LiveUSB. Then, boot the target machine once to make sure it boot successfully.