I decided to make a disk array on the Intel Atom D410PT platform. This is a motherboard with passive cooling of the processor, two memory slots (maximum 4Gb), one PCI slot (which I used for the SATA SiliconImage 3512 controller - 2x1.5Gb / s), 2 SATA (3.0Gb / s) connectors, LAN 100mb / s , and numerous USB 2.0 ports (including on the motherboard itself).
The board itself fit easily into the NaviPower PIX-1001 230W chassis. I posted a complete description of my actions with iron
on my website .
Accordingly, since it was decided to use 4 disks to create a RAID5 array, then the logical solution was to transfer the operating system to an external USB drive (in my case, the USB HDD Seagate Freeagent GoFlex). Since installing and configuring the system from scratch is often a long and painstaking exercise, I decided that the system will lie on an external disk in the VHDX container, and since the motherboard supports UEFI, the download should go accordingly using UEFI. The main problem was that there is no clear instructions on the Internet how to do this. All information is very fragmented, and only parts of the solution to this problem are described.
I decided to do this: first install the system as usual on a SATA disk, then transfer it to a VHDX container and then to external USB HDD.
I will skip the installation of the system, since This is a banal operation that does not require special knowledge (the only thing is that if you want to install the system on a GPT disk, you will need to play with diskpart before installation).
An important addition: before transferring the system to an external disk, it is necessary to turn off the paging file and the hibernation system!Accordingly, we install updates to the system, programs, make settings.
Next, you need to transfer the system to a VHDX container. For this program was downloaded Disk2VHD 2.01. Its interface is primitive. You just need to select the drive to transfer, the VHDX file and start the process.
')
After that, on a working system (it is possible on Windows 7 x64, but then there will be problems with working with VHDX. It is better to take Windows Server 2012 or Windows 8 x64), you need to prepare a USB disk for booting. In general terms, you need to clear the disk from the information, create 2 partitions, one of which will be EFI (fat32, 300Mb, 4kb), and the second will be the main (NTFS, 1Tb, 64kb) to accommodate our VHDX container.
We connect the drive to the computer, run diskpart.exe.
See the list of disks:
DISKPART> list disk ### GPT -------- ------------- ------- ------- --- --- 0 1863 G 1024 K 1 931 G 0 2 931 G 0 * * 3 1397 G 0 * 5 931 G 0 *
We select a disk with which we will work. This is usually done in size.
Attention! if you make a mistake, you can completely erase the system and data from the computer! DISKPART> select disk 3 3.
Next, you need to clear the disk from all information:
DISKPART> clean DiskPart: .
Next, we convert the disk to a GPT disk:
DISKPART> convert gpt DiskPart: GPT.
Next, create the first partition where the EFI loader will be stored. We will make it 300Mb in size, and 4kb in stripe size (usually you need to test which stripe size will work faster, but I make strips as large as possible, since file sizes nowadays are usually more than 4 or even 64 KB.):
DISKPART> create partition efi size=300 DiskPart: .
Now it needs to be formatted in FAT32 format (only this format supports UEFI technology):
DISKPART> format fs=fat32 quick unit=4k ( ): 100 DiskPart .
Now you need to assign a drive letter to this partition in order to work with it (in our case it will be the letter Y):
DISKPART> assign letter=y DiskPart: .
Now you need to mark the rest of the disk where the rayserv.vhdx file will be located. First, create a section:
DISKPART> create partition primary DiskPart: .
Now let's format it in NTFS with a stripe size of 64kb:
DISKPART> format fs=ntfs quick unit=64k ( ): 100 DiskPart .
Now assign the letter Z to the partition:
DISKPART> assign letter=z DiskPart: .
Now you can close diskpart.exe:
DISKPART> exit DiskPart...
Now you can copy rayserv.vhdx to disk Z.
Further it is necessary to make some preparatory actions. It is necessary to connect the virtual disk to the system.
Since I work in Windows 7 x64, accordingly, my system does not support working with VHDX files. Therefore, I have previously made not one system image file in VHDX, but two identical system images, only one in VHD format, and the other one is VHDX. Currently the VHD file is on the D: drive, and the VHDX file is already on the USB drive with the letter Z :. We connect the disk under the letter H :.
Now you need to make the EFI partition bootable.
Download the bootsect.exe file on the D: disk (you can find the file using the Get Waik Tools utility, or
on my page ). Run with parameters:
D:\>bootsect.exe /nt60 y: /force Target volumes will be updated with BOOTMGR compatible bootcode. Y: (\Device\HarddiskVolume53) Successfully updated FAT32 filesystem bootcode. Bootcode was successfully updated on all targeted volumes.
In order to copy the boot files to the EFI partition, go to the H: \ Windows \ System32 folder and run the command:
H:\Windows\System32>bcdboot.exe H:\Windows /s Y: /f uefi Boot files successfully created.
Now you need to create the system to indicate that you need to boot from the VHDX file. To do this, from the folder H: \ Windows \ System32 run:
H:\Windows\System32>bcdedit /store Y:\EFI\Microsoft\Boot\BCD /copy {default} /d "vhd boot (locate)" The entry was successfully copied to {64d49e0f-ba36-11e3-8de2-1c6f653f47df}.
The / store key indicates the path with which BCD file we need to work with.
The received code {64d49e0f-ba36-11e3-8de2-1c6f653f47df} is memorized, or copied from the screen.
This command we copied the record to boot by default, and called it "vhd boot (locate)".
Now assign the default number to this number:
H:\Windows\System32>bcdedit /store Y:\EFI\Microsoft\Boot\BCD /default {64d49e0f-ba36-11e3-8de2-1c6f653f47df} .
Now it is necessary for the system for this record to indicate that it is necessary to boot from a specific disk and a specific file.
H:\Windows\System32>bcdedit /store Y:\EFI\Microsoft\Boot\BCD /set {default} device vhd=[locate]\rayserv.vhdx .
H: \ Windows \ System32> bcdedit / store Y: \ EFI \ Microsoft \ Boot \ BCD / set {default} osdevice vhd = [locate] \ rayserv.vhdx
The operation completed successfully.
By the way, the [locate] parameter is very useful. It tells the operating system that when downloading a file, it is necessary to search the file on all disks in order.
Now you need to enable automatic detection of devices at boot (this is required for some systems).
H:\Windows\System32>bcdedit /store Y:\EFI\Microsoft\Boot\BCD /set {default} detecthal on .
And finally, you need to disable autorun of the recovery console in case of problems:
H:\Windows\System32>bcdedit /store Y:\EFI\Microsoft\Boot\BCD /set {default} bootstatuspolicy ignoreallfailures .
We disconnect the virtual disk from the system through the disk control panel.
Almost done. Now, on the final system, you need to disconnect all drives except ours, and enable UEFI boot in the BIOS for USB drives. It may also be necessary to increase the timeout for searching USB devices, since With a cold start, the system may not see the external hard drive.
After that, boot from the USB drive.
When I first booted the server did not start. I had to press F8 and select secure boot. Here the server started working, and after rebooting everything began to work as it should. It remains only to remove the timeout in the boot menu and everything will be ready. This can be done on the running system through the msconfig utility.