A layman's guide - Unattended installation
This guide will show you what you need to do to be able to install ReactOS without needing constant input from you (unattended installation).
All that you need to do, is to alter unattended.inf with your own values, you can do this before you compile the source code (see A layman's guide - How to compile ReactOS) or by altering unattended.inf from an already created ISO (see A layman's guide - Altering files in an ISO).
There are just a few things that you will require before starting:
- The screen resolution and refresh rate for the target computer's monitor.
- The keyboard of the target computer (see the section Keyboard Layouts below).
- Your time zone (see the section Time zone codes below).
When you have the above values, you can alter unattended.inf, but please read the next section for further information.
Unattended.inf
The unattended.inf file can be found in the source at \reactos\boot\bootdata\bootcd\.
Example: E:\ReactOS_Development\Source\reactos\boot\bootdata\bootcd\unattended.inf.
It can also be found in the ISO at \reactos.
The following shows the unattended.inf file, split into sections with some suggestions.
[Unattend] Signature = "$ReactOS$"
Leave this as is.
; Set UnattendSetupEnabled to yes in order to get unattended setup working ; yes - unattend setup enabled ; no - unattend setup disabled UnattendSetupEnabled = no
You must change UnattendSetupEnabled to yes.
; Install to \Device\Harddisk0\Partition1\ReactOS DestinationDiskNumber = 0 DestinationPartitionNumber = 1 InstallationDirectory=ReactOS
This should be left as is for normal installations.
; MBRInstallType=0 skips MBR installation ; MBRInstallType=1 install MBR on floppy ; MBRInstallType=2 install MBR on hdd MBRInstallType=2
This should be left as is, unless you have reason to change it.
FullName="MyName" ;OrgName="MyOrg" ComputerName="MYCOMPUTERNAME" ;AdminPassword="MyPassword"
You can put your own preferences here (remove the semicolon (;) to activate), but if you are only testing; is it worth it.
; TimeZone is set GMT as default TimeZoneIndex=85
Set TimeZoneIndex= to your own country's time zone (see the section Time zone codes below).
; enable this setting to disable daylight saving changes ; DisableAutoDaylightTimeSet = 1
Remove the semicolon (;) if you do not want automatic adjustment to or from summer time.
; enable this setting to format the selected partition ; 1 - format enabled ; 0 - format disabled FormatPartition=1
Change this to FormatPartition=0 if you do not want the partition formatted.
; enable this setting to automatically create a partition ; during installation ; 1 - enabled ; 0 - disabled AutoPartition = 1
Set this as required.
; choose default file system type ; 0 - FAT ; 1 - BtrFS FsType = 0
Currently (until a bug is fixed) FAT is the only option here.
; enable this setting to disable Gecko install ; yes - disabled ; no - enabled DisableGeckoInst = no
Change this as required, but if your network card is not supported by one of the default drivers, then you could have a stoppage if it is left at no.
; set this option to automatically ; specify language in 2nd mode setup ; see hivesys.inf for available languages LocaleID = 409
Change LocaleID = to your own language (see the section Keyboard Layouts below). 409 is US English.
; set product option ; 0: ReactOS Server ; 1: ReactOS Workstation ProductOption = 0
Change this as required.
; enable this section to automatically launch programs ; after 3rd boot ; ; [GuiRunOnce] ; %SystemRoot%\system32\cmd.exe ; Enable the next line (+ the GuiRunOnce section) to enable the lautus theme ; "rundll32.exe shell32.dll,Control_RunDLL desk.cpl desk,@Appearance /Action:ActivateMSTheme /file:%SYSTEMROOT%\Resources\themes\lautus\lautus.msstyles"
This is probably best left disabled.
; enable this section to change resolution / bpp ; setting a value to 0 or skipping it will leave it unchanged ; [Display] ; BitsPerPel = 32 ; XResolution = 1440 ; YResolution = 900 ; VRefresh = 0
You will need to find these values for your hardware, but this is an example:
[Display]
BitsPerPel = 32
XResolution = 1024
YResolution = 768
VRefresh = 0
Time zone codes
Time zone names and code numbers have been taken from ReactOS's hivesft.inf. They are in numerical order and not in alphabetical order, so you will have to search for your time zone name.
Index | Time Zone | Index | Time Zone | Index | Time Zone |
0 | Dateline Standard Time | 1 | Samoa Standard Time | 2 | Hawaiian Standard Time |
3 | Alaskan Standard Time | 4 | Pacific Standard Time | 10 | Mountain Standard Time |
13 | Mountain Standard Time (Mexico) | 15 | US Mountain Standard Time | 20 | Central Standard Time |
25 | Canada Central Standard Time | 30 | Central Standard Time (Mexico) | 33 | Central America Standard Time |
35 | Eastern Standard Time | 40 | US Eastern Standard Time | 45 | SA Pacific Standard Time |
50 | Atlantic Standard Time | 55 | SA Western Standard Time | 56 | Pacific SA Standard Time |
60 | Newfoundland Standard Time | 65 | E. South America Standard Time | 70 | SA Eastern Standard Time |
73 | Greenland Standard Time | 75 | Mid-Atlantic Standard Time | 80 | Azores Standard Time |
83 | Cape Verde Standard Time | 85 | GMT Standard Time | 90 | Greenwich Standard Time |
95 | Central Europe Standard Time | 100 | Central European Standard Time | 105 | Romance Standard Time |
110 | W. Europe Standard Time | 115 | E. Europe Standard Time | 120 | Egypt Standard Time |
125 | FLE Standard Time | 130 | GTB Standard Time | 135 | Israel Standard Time |
140 | South Africa Standard Time | 142 | Belarus Standard Time | 143 | Kaliningrad Standard Time |
145 | Russian Standard Time | 150 | Arab Standard Time | 155 | E. Africa Standard Time |
158 | Arabic Standard Time | 160 | Iran Standard Time | 165 | Arabian Standard Time |
170 | Caucasus Standard Time | 172 | Russia Time Zone 3 | 175 | Afghanistan Standard Time |
180 | Ekaterinburg Standard Time | 185 | West Asia Standard Time | 190 | India Standard Time |
193 | Nepal Standard Time | 194 | Sri Lanka Standard Time | 195 | Central Asia Standard Time |
201 | Omsk Standard Time | 203 | Myanmar Standard Time | 204 | N. Central Asia Standard Time |
205 | SE Asia Standard Time | 207 | North Asia Standard Time | 208 | Tomsk Standard Time |
210 | China Standard Time | 215 | Singapore Standard Time | 220 | Taipei Standard Time |
225 | W. Australia Standard Time | 226 | Ulaanbaatar Standard Time | 227 | North Asia East Standard Time |
230 | Korea Standard Time | 235 | Tokyo Standard Time | 240 | Yakutsk Standard Time |
245 | AUS Central Standard Time | 250 | Cen. Australia Standard Time | 255 | AUS Eastern Standard Time |
260 | E. Australia Standard Time | 265 | Tasmania Standard Time | 270 | Vladivostok Standard Time |
275 | West Pacific Standard Time | 280 | Central Pacific Standard Time | 282 | Russia Time Zone 10 |
283 | Magadan Standard Time | 285 | Fiji Standard Time | 288 | Russia Time Zone 11 |
290 | New Zealand Standard Time | 300 | Tonga Standard Time |
Keyboard Layouts
The keyboard codes are in the following eight digit format:
00000401 (ARABIC_101) - 00010401 (ARABIC_102). You will only need the portion highlighted in bold.
Some codes I have included a leading zero, just to be safe; this zero may not be necessary.
These keyboard codes have been taken from hivesys.inf in ReactOS the source.
The keyboard names that are highlighted in orange, appear to be unimplemented (they are commented out in the hivesys.inf file).
Code | Keyboard | Code | Keyboard | Code | Keyboard |
401 | ARABIC_101 | 10401 | ARABIC_102 | 20401 | ARABIC_102_AZERTY |
402 | BULGARIAN_BDS | 20402 | BULGARIAN_PHONETIC | 30402 | BULGARIAN_PHONETIC_BDS |
405 | CZECH | 10405 | CZECH_QWERTY | 406 | DANISH |
30407 | GERMAN_ERGO | 20407 | GERMAN_NEO | 10407 | GERMAN_RISTOME |
407 | GERMAN | 807 | SWISS_GERMAN | 408 | GREEK |
409 | US | 809 | UK | 1809 | IRISH |
10409 | US_DVORAK | 11009 | CANADIAN_MULTILINGUAL | 20409 | US_INTERNATIONAL |
30409 | US_DVORAK_LEFT | 40409 | US_DVORAK_RIGHT | 50409 | US_ARABIC |
040a | SPANISH | 080a | LATIN_AMERICAN | 040b | FINNISH |
040c | FRENCH | 080c | BELGIAN_FRENCH | 0c0c | CANADIAN_FRENCH |
100c | SWISS_FRENCH | 040d | HEBREW | 040e | HUNGARIAN |
040f | ICELANDIC "Icelandic" | 410 | ITALIAN | 411 | JAPANESE |
412 | KOREAN | 413 | DUTCH | 813 | BELGIAN_DUTCH |
414 | NORWEGIAN | 415 | POLISH_PROGRAMMERS | 10415 | POLISH_214 |
10416 | PORTUGUESE_BRAZILIAN | 816 | PORTUGUESE | 418 | ROMANIAN_LEGACY |
10418 | ROMANIAN_STANDARD | 419 | RUSSIAN | 10419 | RUSSIAN_TYPEWRITER |
041a | CROATIAN | 081a | SERBIAN_LATIN | 0c1a | SERBIAN_CYRILLIC |
041b | SLOVAK | 1041b | SLOVAK_QWERTY | 041c | ALBANIAN |
041d | SWEDISH | 041e | THAI_KEDMANEE | 1041e | THAI_PATTACHOTE |
2041e | THAI_KEDMANEE_NON_SHIFTLOCK | 3041e | THAI_PATTACHOTE_NON_SHIFTLOCK | 041f | TURKISH_Q |
1041f | TURKISH_F | 422 | UKRAINIAN | 10422 | UKRAINIAN_STUDENT |
423 | BELARUSIAN | 425 | ESTONIAN | 426 | LATVIAN |
10426 | LATVIAN_QUERTY | 10427 | LITHUANIAN | 042a | VIETNAMESE |
042b | ARMENIAN_EASTERN | 1042b | ARMENIAN_WESTERN | 042c | AZERI_LATIN |
082c | AZERI_CYRILLIC | 042f | MACEDONIAN | 437 | GEORGIAN |
438 | FAEROESE | 439 | DEVANAGARI | 043f | KAZAKH |
843 | UZBEK_CYRILLIC | 444 | TATAR | 445 | BENGALI |
845 | "Bengali" | 447 | GUJARATI | 044c | MALAYALAM |
044d | ASSAMESE | 455 | BURMESE | 048f | "Esperanto" |
Installation notes
Use the ISO in the same way as you would a normal ISO. If there is no operating system installed on the target partition, then you can just leave it to do its work, but if you already have a operating system installed on the target partition, you will have to wait until it shows the message about pressing any key to continue. If you fail to press a key it will boot into the already installed OS.
When it has finished installing, it will be at the desktop ready for use, unless there is hardware without drivers, then you will have the Hardware Wizard window open and waiting for input.
See also Create an unattended Installation CD