I need to install Linux OS on 30 PCs. Is there any way to install from one ISO image with multicast or something like WDS in Microsoft?
I have a Ethernet connection with speed of 100Mb so installing 30 PCs with uni-cast can be very slow.
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communityI need to install Linux OS on 30 PCs. Is there any way to install from one ISO image with multicast or something like WDS in Microsoft?
I have a Ethernet connection with speed of 100Mb so installing 30 PCs with uni-cast can be very slow.
What you're looking for is probably PXE:
https://wiki.archlinux.org/index.php/Preboot_Execution_Environment
http://jensd.be/533/linux/create-a-pxe-bootserver-to-server-multiple-linux-distributions
https://www.howtoforge.com/ubuntu_pxe_install_server
In case your LAN is too slow, you could use
Kickstart for Fedora/CentOS/RHEL: https://docs.fedoraproject.org/en-US/fedora/rawhide/install-guide/advanced/Kickstart_Installations/
Fully Automatic Installation: https://fai-project.org/
You can distribute a Linux installation across the network via multicast using udpcast
:
udp-sender /dev/sda
on the source PC.udp-receiver /dev/sda
on all target PCs.After the transfer has finished, all PCs have a usable Linux installation.
In detail, there are several approaches to this.
Having a live Linux running on all PCs is the most irritating part. Many people recommend https://fogproject.org/ for PXE, but it needs a dedicated server I just had not handy. I eventually resorted to a custom Tiny Core Linux distributed via PXE. For your first rodeo, you can also go around and boot a live Linux from a USB drive. All you need is something that comes with udp-sender
and udp-receiver
(in Ubuntu, it is in the udpcast
package).
The distribution process itself can be sped up significantly by not cloning the entire hard-drive, but rather individual partitions and a quick compression like gz -2
. If you happen to have a server, you can also store an image of the target's file-system with a designated file-system cloning tool like e2image -ra
. The commands would then be something like
udp-sender image.ext4.gz
udp-receiver | gzip -d > /dev/sda1
With this method, I clone Ubuntu (and Windows) to a couple of rooms full of PCs at a school. The speed is impressive.
lzop
or lz4
are pretty good if you're not sure gzip -2
will finish while you're reading docs and getting ready to actually try something. (But gzip
is likely to be already installed in any bootable image; lz4 or lzop might not be.)
Jul 2, 2020 at 21:29
ssh-keygen -A
may work. also generating lots of private keys on clones may be a bad idea, especially if it's not on bare metal (possible parallel construction)
Jul 7, 2020 at 18:16
You can use
RedHat's Kickstart,
FAI - Fully Automatic Installation
Spacewalk (based on RedHat's satellite)
and other solutions available.
Replicate the ISO 1->2->4->8, so taking 3 copy times and 4 install times when in parallel.
I'd go with nc and a minimal img.gz, then run a script to expand the partition/fs, and regen the keys, hostname.