SUWI7

SUWI7 er Samfundets Upåaktede Windows-installasjon for Windows 7, et system som lar deg installere Windows på maskiner over nettverk uten å måtte gi dem oppmerksomhet mer enn høyst nødvendig.

Bakgrunn

Det finnes en rekke slike systemer, delt inn i to hovedlinjer: Image-baserte og installer-baserte. I image-baserte systemer installerer man først OSet for hånd, gjør eventuelle justeringer, programvareinstallasjon og slikt, og så lager en bit-for-bit-kopi av disken. Denne kopien skrives så til maskinene man vil installere til (vanligvis over nett).

I installer-baserte systemer kjører man i stedet OS-installasjonen, men instruert på en slik måte at man slipper å trykke på noe underveis.

Fordelen med førstnevnte er at alt kan settes opp eksakt slik man vil ha det, og eksakt slik blir det. Ulempen er at det er vanskelig og mye arbeid å tilpasse slike images til flere maskinvaretyper. (På Samfundet har vi meget bred variasjon.) Installer-baserte systemer fungerer vanligvis på langt flere maskinvarer, men er til gjengjeld mindre robust, siden de kan finne på å stoppe opp om installeren går inn i en ukjent eller uventet tilstand.

Felles for de aller fleste systemer som gjør disse tingene, er at de er komplekse, enterprise og onde, og gjerne også dyre. Microsofts løsninger krever Windows-tjenere.

SUWI7 er mest et stort hack for å starte Windows-installeren.

Virkemåte

SUWI7 har fire steg.

Steg 1: Netboot

SUWI7 starter ved at man netbooter inn i Debian Live over PXE. Dette er beskrevet i en egen node, men kort sagt spør man om PXE-boot over DHCP, og cirkus svarer med et Debian-bilde i form av vmlinuz og initrd.img fra /tftpboot/suwi7 på cirkus, samt et filsystem som NFS-monteres fra /export/cassarossa/ymse/suwi/live på cassarossa.

Steg 2: Debian Live

Debian Live, som nå kjører på maskinen, bruker systemd til å automatisk logge inn som root. Deretter laster bash inn /root/.profile, som monterer Samba-sharen \suwi7win som befinner seg i /export/cassarossa/ymse/suwi7/win på cassarossa. Herfra kjøres skriptet suwi7. Dette skriptet setter klokken, klargjør disken, formaterer autounattend.xml (se neste steg) og starter en virtuell maskin i KVM. Denne får den fysiske disken i maskinen som virtuell disk, samt en virtuell USB-stasjon med drivere, CD-stasjon med Windows-ISO og en virtuell diskettstasjon(!) med filen autounattend.xml.

Steg 3: Virtuell maskin

Den virtuelle maskinen som er startet i KVM leser Windows-installasjonsbildet fra den virtuelle CDen. Deretter ser den i den virtuelle diskettstasjonen sin, og finner autounattend.xml. Denne filen inneholder alle nødvendige svaralternativer for Windows-installasjonen. Årsaken til at filen må befinne seg på en diskettstasjon er at Windows bare leter etter den i "removable media", noe virtuelle USB-stasjoner tydeligvis ikke anses for å være. Videre ligger det på USB-stasjonen forskjellige støttefiler og drivere Windows kan trenge.

Windows installerer så seg selv på den virtuelle harddisken sin, som egentlig er den fysiske disken. Dette er mulig fordi Debian Live bare kjører i minne, og ikke trenger noen harddisk selv. Når Windows-installasjonen er klar til å stå på egne ben, starter den virtuelle maskinen på nytt. Da avsluttes KVM, og den fysiske maskinen får seg også en omstart.

Steg 4: Windows

Denne gangen booter maskinen inn i harddisken sin, som nå inneholder primitiv Windows. Herfra fortsetter installasjonen av komplett Windows. Spesielt utføres en del kommandoer som er spesifisert i autounattend.xml, herunder kjøring av WPKG.

Ferdig

Hipp hurra, nå er Windows installert.

Drivere

Windows 7 er etter hvert gammelt, og kommer ikke med drivere til moderne maskinvare ut av boksen. Installasjonen leter dog etter driverfiler på (den virtuelle) USB-stasjonen, og disse kopieres fra /export/cassarossa/ymse/suwi7/win/drivers. Her kan det altså legges oppakkede driverfiler. Merk at USB-stasjonen foreløpig er på 2GB; det kan økes om man endrer bash-skriptet om driverne blir for store.

autounattend.xml sørger for at maskinen settes på AD under installasjonen – forutsett at den har nettforbindelse, som krever drivere til nettkort. Om den ikke har nett under installasjonen, kan drivere fint installeres for hånd i ettertid, men da må man altså huske å manuelt sette maskinen på AD.

WPKG

autounattend.xml har instruksjoner for å installere WPKG, som kjøres etter at maskinen har startet på nytt for siste gang (og derfor må starte på nytt noen ganger til, for å installere programmene). WPKG installerer selv WPKG-GP, som sørger for at WPKG kjøres ved omstart. Etter første installasjon er det altså WPKG vi bruker for å vedlikeholde Windows-klientene våre.

Endring av autounattend.xml

autounattend.xml kan i teorien modifiseres direkte, men det anbefales å bruke programmet WAIK, som er laget til dette formålet. Merk at Computer Name er satt til noe som lett kan sed-es av bash under installasjonen.

TODO

Lenker: Start, arkiv, historie, suwi, wpkg

Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2018-04-05 23:34 | Revisjon: 10 (historie, blame) | Totalt: 1886 kB | Rediger