Restore CD/USB with WinPE or restore System Image from running Windows to avoid HW RAID Drivers problem with Linux?

Hello,

Problem: restore system images of Windows Server running on physical servers with HW RAID or Fake HW RAID (Really SW) with UrBackup Restore CD.

I have found that the Restore CD/DVD cannot handle most of the HW RAID or HW Fake RAID controllers that comes with a lot of Branded Servers like HP, Fujitsu, Dell, etc…

If you have virtual servers there is no problem to restore with UrBackup Restore CD because it doesn´t need specific RAID controller drivers. But, the problem is, there are still a lot of physical servers running with Windows Server operative systems and using RAID controllers (pure HW or fake SW).

I have tested with a lot of different servers and always have problems to restore system images due to difficulty to the Restore CD to recognize HW RAID controllers.

If could be possible to implement a WinPE restore CD… or maybe any way to restore a image from another running system, i.e. connecting another HD to the server to boot other Windows system and restore original image from there from Windows?

Any option or ideas?

Thank you so much.

Yeah, I recently added that to the “Help Wanted” section at UrBackup - Community - Issues, support and user generated content

Create a Windows PE based restore. The Linux based restore sometimes has driver issues so a Windows PE based restore would be useful. Best way to go about this is to create a GUI for creating the restore disk (using Windows ADK) and for the restore in whatever language/framework you want. Then you can call the restore client executable to get information and to perform the actual restore

I wish I had the knowledge to undertake that task. Unfortunately it is not so.
I guess I have no choice but to wait for someone to make it possible

may I ask what kind of HW raid linux don’t support? linux is very important for server market. maybe some hardware is too new to get old distribution support. but eventually most/every HW raid vendors would make linux supported.

There are a lot of branded servers like HP, Fujitsu, Dell, etc… most of them destined to small-medium bussiness, which have not support for a lot of Linux distributions. Because the smal-medium server bussiness range are principally designed and used by Microsoft operanting systems (Windows Server).
A lot of LSI and Intel RAID adapters (most of those servers has this kind of controllers) has not Linux driver support or partial support. In some cases, some of them has support for “Enterprise Linux Distributions” like SUSE or RHEL… but not for Debian…
Probably if you had a lot of knowledge and time could be possible to make it works more or less… but in a backup restore scenario, when you are in a hurry to restore, you need something that works fast and with less troubles possible.

Hi Uroni,
When you said “call teh restore client executable”… which one is this client? I will investigate about Windows ADK and how to create a GUI that works inside.

Restore works by running the “normal” client in a restore mode.

Then you can send restore commands to that client. You can either do that directly (by implementing the protocol) or use the command line. Currently available are:

Server->Log(“restore_cmd commands are…”, LL_INFO);
Server->Log(“write_mbr(mbr_filename,out_device)”, LL_INFO);
Server->Log(“get_clientnames”, LL_INFO);
Server->Log(“get_backupimages(restore_name)”, LL_INFO);
Server->Log(“get_file_backups(restore_name)”, LL_INFO);
Server->Log(“download_mbr(restore_img_id,restore_time,restore_out)”, LL_INFO);
Server->Log(“download_image(restore_img_id,restore_time,restore_out)”, LL_INFO);
Server->Log(“download_files(restore_backupid,restore_time,restore_out)”, LL_INFO);
Server->Log(“download_progress()”, LL_INFO);

So you run e.g. urbackupclientbackend.exe --internal --plugin urbackup.dll --restore true --restore_cmd get_backupimages --restore_name clientname and get a list of image backups that can be restored.

Could you give an example? I haven’t had problems with hardware RAID controller support and up-to-date Linux kernels yet.

I would propose to build it like this:

  1. Make a GUI for restore, running the client in the background and running the client cmds to get data/start the restore. You can test that locally on the dev machine e.g. restoring to secondary volume/mounted vhdx or something.
  2. Look into how the above can be integrated into a WinPE iso. I’d look at existing projects like https://github.com/pebakery/pebakery first. You probably just need some minium amount of scripting/extension to start the GUI after boot.

none of the big names make hardware raid chip. they all use LSI/Adaptec products(some just rebrand some make own firmware) and all have good linux support.

debian has best hardware raid support. RHEL will drop old raid card drivers, but debian will not. fake raid is a problem under linux, but not hardware raid.

I totally agree winpe restore CD, but not because hardware raid. hardware raid support under linux is better than natvive windows without 3rd party driver.

Yeah, one area that is problematic is wifi drivers. And newer laptops often don’t have ethernet anymore… Instead of getting wifi to work with the restore cd (if it’s not intel wifi or something) I’d actually advise to just use a usb ethernet dongle or usb wifi with known good Linux support instead. But having Windows PE for that would be nice.

totally agree!! network driver is the real pain and would be solved with windows PE + 3rd party driver or even customized windows PE by administrator. windows is much friendly if need to inject drivers.

It´s correct that most of the problems are with Fake Raid. But I have found problems with HW RAID and Fake RAID of LSI in Dell and Fujitsu servers too. For example, in all small Fujitsu Primergy TXxx servers, the integrated chip for RAID is a LSI MegaRAID (Fake RAID) wich is not recognized by Debian. I have found problems also with Intel Fake RAID in some HP Proliant servers. I haven´t tested any modern HW RAID recently with UrBackup or Debian, but a few months ago I need to restore a server with an relative old LSI HW RAID and it doesn´t recognize the logical volume under the RAID in Debian (I don´t remember the model).

I will investigate that way in my free time. Probably I will have a lot of questions… I will let you know.

Where can I obtain a complete parameter list and arguments for urbackupclientbackend.exe?

I would restate that as: if you are familiar with injecting drivers into PE then that might be an easier task than building a custom Linux rescue image. The opposite, too, if you are comfortable creating custom Linux rescue images, then creating one with the necessary drivers and firmware (assuming they exist) may be easier than messing with PE.

Hello again,

Is possible to obtain a complete parameter list and or usage examples to use restore client?? It isn´t in any documentation that I can see…

There isn’t any documentation or usage examples.

You could have a look at the source code of the restore “GUI” https://github.com/uroni/urbackup_backend/blob/dev/urbackupclient/client_restore.cpp That’s also where I copied the list of commands from.

I´m sorry, but it´s almost impossible make this works without any kind of documentation or help using the client restore.
Looking at the code I can´t find how to call the server to obtain any kind of information from it. The example that you writed does not retrieve any information. Directly it doesn´t work.
There are not instructions how to pass server address, or user and password… or how to use the command line parameters.
You use ‘–internal’ parameter, ‘–plugin’ parameter… and so on…for which ones I don´t know anything. So this is a very difficult task for me.

It would be interesting to have a solution to restore from système rescue cd

It is a good live cd Always up to date containing all raid drivers

I works whith a lot of professional servers and raid systèms
And système rescue cd Always recognize raid