This is a really strange one. We have successfully provisioned thousands of PCs using Clonezilla. However recently we have received a particular model of netbook that can't successfully mount NFS. After much packet capture and analysis my conclusion is that they have flakey NICs, resulting in a lot of errors and retries. That's OK for the TFTP part of the boot, because the TCP retry mechanism works well enough to mask the issue. But NFS is fussy, with very short timeouts, and it gives up quickly, resulting in a failed Clonezilla session after the TFTP boot part completes.
There are several possible workarounds. The easiest would be if Clonezilla server could be configured to mount /home/partimag using some protocol other than NFS. TFTP, SSH, FTP, whatever. Is that possible? I know there is such a choice using Clonezilla live
If that's not possible I can use Clonezilla Live via a USB thumb drive (these machines lack an optical drive). If Clonezilla Live is scriptable so much the better, otherwise we can walk through it manually.
I may also be able to use a USB Ethernet dongle in conjunction with a USB thumb drive, having it boot first to the USB drive and then chain PXE boot via the dongle. That would be very nice but will require more research and effort to build the right USB boot image to make it happen.
Any help is appreciated.
Thanks - Pete
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
SUCCESS! Now I want to reconfigure my existing Clonzilla Server instance to use SAMBA or SSH or something else besides NFS as the default connection after TFTP. I found some promising example instructions here.
Info from that link:
To assign the image repository via URI (Uniform Resource Identifier), use "ocs_repository".
URI supported in Clonezilla live:
There are 5 types of repository can be assigned via "ocs_repository":
local device: dev:///dev/partition
nfs server: nfs|nfs4://host/path
samba server: smb://[domain;user:password@]host/path
ssh server: ssh://[user@]host[:port]/path (No password can be assigned in URI)
webdav server: http|https://host[:port]/path (No username and password can be assigned in URI)
E.g.
ocs_repository="dev:///dev/sdf1"
ocs_repository="nfs://192.168.100.254/home/partimag/"
ocs_repository="nfs4://192.168.100.254/partimag/"
ocs_repository="smb://administrator:mypasswd@192.168.100.175/images/"
ocs_repository="smb://my_domain;jack:mypasswd@192.168.1.1:445/images/"
ocs_repository="ssh://jack@192.168.100.211/home/partimag/"
ocs_repository="http://192.168.100.180/share"
Then when Clonezilla live boots, the image repository assigned by ocs_repository will be automatically mounted, and if authentication is required, it will prompt you.
Last edit: Peter Kuykendall 2017-03-10
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This problem was intermittent for us. Now it has reappeared and I've spent some time running tests and gathering data. I'm getting closer to root cause. I stuck with NFS because it disappeared before I could switch to SSH. As it turns out, NFS isn't the problem.
I'm running Clonezilla Server in a virtual machine on Ubuntu 12.04. The host is running CentOS release 6.9 (Final), hosting with VirtualBox 5.1.22r115126. It has a gigabit Ethernet interface to the LAN.
When we are restoring images to random machines, we typically get 400 Mbps or higher throughput to each, until the network saturates at close to 1,000 Mbps. All good.
When we run netbooks which only have 100 Mbps NICs, the trouble starts. We can't run more than 3 at a time without the network slowing to a crawl. Even fresh machines booting only intermittently get DHCP responses, and never get TFTP.
Running atop on the Clonezilla virtual machine and also on the host reveals where the problem is, but not what the problem is. When a single netbook is getting an image restore at 95 Mbps, atop on the virtual machine shows it is hammering out nearly 300 Mbps to the virtual NIC. Obviously about 2/3rds of that traffic is getting lost, for unknown reasons. Running atop on the host shows no trouble. Running tcpdump to capture traffic on both the virtual machine and the host shows no trouble.
So, what's going on? Somehow the virtual machine is getting screwed up in its networking, but only when trying to restore an image to netbooks with 100 Mbps NICs. Restoring to modern PCs and laptops with 1000 Mbps NICs works fine.
I suspected trouble with our network switches, so I connnected an Ethernet cable directly between the server's NIC and the netbook's NIC. No improvement.
I need to investigate this further. It's 100% reproducable. I have posted the capture files and screen shots to a Google Drive folder here. The screenshot shows atop running on the Clonezilla VM, driving 253 Mbps into its virtual NIC. The recipient is a single netbook with a 100 Mbps NIC, receiving the data at about 95 Mbps. atop on the host show the 95 Mbps traffic. Wireshark analysis of the capture doesn't show many errors or retries.
There are a lot of posts on the Internet regarding stange network slowdowns under Virtualbox. An example is here.
Last edit: Peter Kuykendall 2019-02-06
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Not very sure. However, your Ubuntu 12.04 is very old. Maybe you can try Clonezilla lite server which comes with newer Linux kernel? By doing this you might be able to find the differences.
You can boot Clonezilla live (e.g., 2.6.0-37 or 20190108-cosmic, download from https://clonezilla.org/downloads.php) on one of your machine as the server, then mount the image repository.
A step-by-step doc for you: https://clonezilla.org/show-live-doc-content.php?topic=clonezilla-live/doc/11_lite_server
In addition, from Clonezilla live 2.6.1-6, you can also boot Clonezilla live on the template machine, and the mode "from-device" with bittorrent mechanism allows you to distribute the template machine directly from the disk to all the clients. The performance is better then multicast mechanism when we tested in our computer classroom. For deploying 32 machines using BT, the speed is about 3 times faster than multicast mechanism.
(3.7 GB/min vs 1.x GB/min)
Please give it a try, and let us know the results.
Steven
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think my first step will be to clone the disk image of my Clonezilla VM's virtual disk to a physical disk in a physical machine. From there I will try running my Clonezilla server as a physical machine, rather than a VM. That should be a pretty easy test to run and will allow me to quickly see if ditching the problematic Virtualbox fixes it or not. If it doesn't fix it I'll explore other paths. I don't want to mess with the OS configuration if I can help it, becuase it's stable and works well aside from this one edge case.
Thank you Steven for the great software and your continued support of it!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is a really strange one. We have successfully provisioned thousands of PCs using Clonezilla. However recently we have received a particular model of netbook that can't successfully mount NFS. After much packet capture and analysis my conclusion is that they have flakey NICs, resulting in a lot of errors and retries. That's OK for the TFTP part of the boot, because the TCP retry mechanism works well enough to mask the issue. But NFS is fussy, with very short timeouts, and it gives up quickly, resulting in a failed Clonezilla session after the TFTP boot part completes.
There are several possible workarounds. The easiest would be if Clonezilla server could be configured to mount /home/partimag using some protocol other than NFS. TFTP, SSH, FTP, whatever. Is that possible? I know there is such a choice using Clonezilla live
If that's not possible I can use Clonezilla Live via a USB thumb drive (these machines lack an optical drive). If Clonezilla Live is scriptable so much the better, otherwise we can walk through it manually.
I may also be able to use a USB Ethernet dongle in conjunction with a USB thumb drive, having it boot first to the USB drive and then chain PXE boot via the dongle. That would be very nice but will require more research and effort to build the right USB boot image to make it happen.
Any help is appreciated.
Thanks - Pete
http://clonezilla.org/clonezilla-usage/general-live-use.php
Thanks! I'll give that a try. Much appreciated.
SUCCESS! Now I want to reconfigure my existing Clonzilla Server instance to use SAMBA or SSH or something else besides NFS as the default connection after TFTP. I found some promising example instructions here.
Info from that link:
To assign the image repository via URI (Uniform Resource Identifier), use "ocs_repository".
URI supported in Clonezilla live:
There are 5 types of repository can be assigned via "ocs_repository":
local device: dev:///dev/partition
nfs server: nfs|nfs4://host/path
samba server: smb://[domain;user:password@]host/path
ssh server: ssh://[user@]host[:port]/path (No password can be assigned in URI)
webdav server: http|https://host[:port]/path (No username and password can be assigned in URI)
E.g.
ocs_repository="dev:///dev/sdf1"
ocs_repository="nfs://192.168.100.254/home/partimag/"
ocs_repository="nfs4://192.168.100.254/partimag/"
ocs_repository="smb://administrator:mypasswd@192.168.100.175/images/"
ocs_repository="smb://my_domain;jack:mypasswd@192.168.1.1:445/images/"
ocs_repository="ssh://jack@192.168.100.211/home/partimag/"
ocs_repository="http://192.168.100.180/share"
Then when Clonezilla live boots, the image repository assigned by ocs_repository will be automatically mounted, and if authentication is required, it will prompt you.
Last edit: Peter Kuykendall 2017-03-10
This problem was intermittent for us. Now it has reappeared and I've spent some time running tests and gathering data. I'm getting closer to root cause. I stuck with NFS because it disappeared before I could switch to SSH. As it turns out, NFS isn't the problem.
I'm running Clonezilla Server in a virtual machine on Ubuntu 12.04. The host is running CentOS release 6.9 (Final), hosting with VirtualBox 5.1.22r115126. It has a gigabit Ethernet interface to the LAN.
When we are restoring images to random machines, we typically get 400 Mbps or higher throughput to each, until the network saturates at close to 1,000 Mbps. All good.
When we run netbooks which only have 100 Mbps NICs, the trouble starts. We can't run more than 3 at a time without the network slowing to a crawl. Even fresh machines booting only intermittently get DHCP responses, and never get TFTP.
Running atop on the Clonezilla virtual machine and also on the host reveals where the problem is, but not what the problem is. When a single netbook is getting an image restore at 95 Mbps, atop on the virtual machine shows it is hammering out nearly 300 Mbps to the virtual NIC. Obviously about 2/3rds of that traffic is getting lost, for unknown reasons. Running atop on the host shows no trouble. Running tcpdump to capture traffic on both the virtual machine and the host shows no trouble.
So, what's going on? Somehow the virtual machine is getting screwed up in its networking, but only when trying to restore an image to netbooks with 100 Mbps NICs. Restoring to modern PCs and laptops with 1000 Mbps NICs works fine.
I suspected trouble with our network switches, so I connnected an Ethernet cable directly between the server's NIC and the netbook's NIC. No improvement.
I need to investigate this further. It's 100% reproducable. I have posted the capture files and screen shots to a Google Drive folder here. The screenshot shows atop running on the Clonezilla VM, driving 253 Mbps into its virtual NIC. The recipient is a single netbook with a 100 Mbps NIC, receiving the data at about 95 Mbps. atop on the host show the 95 Mbps traffic. Wireshark analysis of the capture doesn't show many errors or retries.
There are a lot of posts on the Internet regarding stange network slowdowns under Virtualbox. An example is here.
Last edit: Peter Kuykendall 2019-02-06
Not very sure. However, your Ubuntu 12.04 is very old. Maybe you can try Clonezilla lite server which comes with newer Linux kernel? By doing this you might be able to find the differences.
You can boot Clonezilla live (e.g., 2.6.0-37 or 20190108-cosmic, download from https://clonezilla.org/downloads.php) on one of your machine as the server, then mount the image repository.
A step-by-step doc for you:
https://clonezilla.org/show-live-doc-content.php?topic=clonezilla-live/doc/11_lite_server
In addition, from Clonezilla live 2.6.1-6, you can also boot Clonezilla live on the template machine, and the mode "from-device" with bittorrent mechanism allows you to distribute the template machine directly from the disk to all the clients. The performance is better then multicast mechanism when we tested in our computer classroom. For deploying 32 machines using BT, the speed is about 3 times faster than multicast mechanism.
(3.7 GB/min vs 1.x GB/min)
Please give it a try, and let us know the results.
Steven
Interesting info on the BT method, thanks.
I think my first step will be to clone the disk image of my Clonezilla VM's virtual disk to a physical disk in a physical machine. From there I will try running my Clonezilla server as a physical machine, rather than a VM. That should be a pretty easy test to run and will allow me to quickly see if ditching the problematic Virtualbox fixes it or not. If it doesn't fix it I'll explore other paths. I don't want to mess with the OS configuration if I can help it, becuase it's stable and works well aside from this one edge case.
Thank you Steven for the great software and your continued support of it!