• No results found

Utplacering av återställningsmedia

N/A
N/A
Protected

Academic year: 2022

Share "Utplacering av återställningsmedia"

Copied!
38
0
0

Loading.... (view fulltext now)

Full text

(1)

Deployment of recovery media

Erik Götheson

Handledare på TFE-UmU: Stig Byström

Handledare på Komatsu Forest AB: Carl-Henrik Lindmark Examinator: Ulf Holmgren, Stig Byström

Datum: 06-06-2011

(2)

Abstract

This report contains information about a solution to a problem concerning the recovery of software to forest machines. Today’s solution that Komatsu Forest use is both time consuming and unnecessarily complicated. By renewing the methods using a bootable USB device with Windows PE and a deployment guidance program, the technician can collect all recovery files containing Komatsu Forest MAXI software and operating systems in the same place. This will result that the outdated methods using CD/DVDs and floppy disks for each machine can be removed.

Two programs have been designed to simplify the process of restoration and are made so that the technician performs everything step by step. The first program helps the user to create the Bootable USB device with Windows PE and add necessary image files for restoration on the machines to it. The second program allows the user to choose the right program for the right recovery file and the associated program for the target.

The Recovery file contains all the software needed for the PC placed in the forest machine to be fully functional again.

(3)

Sammanfattning

Denna rapport innehåller information om hur en lösning till ett problem gällande återställning av mjukvara till skogsmaskiner ute i fält tagits fram. Dagens lösningar som Komatsu Forest använder sig av är tidskrävande och onödigt komplicerade. Genom att förnya metoderna genom att använda bootbart USB-minne med Windows PE och ett installationsguidningsprogram, så kan teknikern samla alla sina återställningsfiler innehållande Komatsu Forest MAXI-programvaror och operativsystem på samma ställe. Detta leder till att föråldrade metoder med CD/DVD-skivor och disketter för varje maskin kan tas bort.

Två program har byggts upp för att förenkla processen för återskapande och är gjorda så att teknikern utför allt steg för steg. Första programmet CreateUSBboot hjälper användaren att skapa det bootbara USB-minnet med Windows PE och lägga över imagefiler som ska användas för återställning av maskinerna. Det andra programmet InstallHelper hjälper användaren med att välja rätt program för rätt återställningsfil.

Återställningsfilen innehåller ett komplett installerat operativsystem som behövs för att få skogsmaskinens pc funktionell igen.

(4)

Innehåll

1. Inledning: ... 1

1.1 Bakgrund ... 1

1.2 Definitioner... 1

1.2 Problembeskrivning ... 1

2. Syfte: ... 2

3. Mål: ... 2

4. Teori:... 3

4.1 Windows PE 3.0 ... 3

4.2 .Net Framework 2.0 ... 5

4.2 HTML Application ... 6

4.4 ActiveX Object ... 6

4.5 USB ... 7

4.6 Image for Windows ... 7

5. Åtkomst: ... 7

5.2 Mjukvara ... 7

5.3 Hårdvara ... 8

6. Genomförande/Metod: ... 8

6.2 Visual Studio 2010 ... 8

6.3 Form ... 9

6.4 Varför Guideupplägg? ... 9

6.5 Utseende ... 9

6.6 Konfigurationsfil ... 9

6.7 Programfiler ... 10

6.8 Användning av Image For Windows ... 11

6.9 Varför USB-minne? ... 11

6.10 Skapa USB boot utan program ... 12

6.11 Skapa shell ... 12

6.12 Problem Partitionskapande ... 12

(5)

7. Användarhandledning: ... 13

7.1 CreateUSBboot ... 13

7.2 InstallHelper ... 15

8. Resultat: ... 16

8.2 Tester ... 16

8.3 Algoritmbeskrivning ... 16

9. Programbeskrivning: ... 21

9.1 CreateUSBboot ... 21

9.2 InstallHelper ... 24

10. Diskussion/Slutsats ... 26

10.1 Vidarutveckling ... 26

11. Tack till ... 26

12. Referenslista ... 27

13. Bilagor ... 28

(6)

1. Inledning:

1.1 Bakgrund

Komatsu Forest är ett företag specialiserat inom skogssektorn som utvecklar, tillverkar och säljer maskiner och tillbehör inom skogsbruk för en global marknad. De har ett omfattande nätverk för service och eftermarknad med global tillgänglighet för reservdelar och med professionella rådgivare.

Huvudkontoret ligger i Umeå, Sverige. [1] http://www.komatsuforest.se/default.aspx?id=10836 (19-05-2011)

1.2 Definitioner

Bootbar = När datorn startar upp så läser systemet in filer från valt media, där letar systemet underliggande filer som ska hjälpa operativsystemet eller annan programvara som ska agera operativ att starta upp. Bootbar betyder att dessa underliggande filer är rätt inställda för det ändamålet.

Windows AIK = Windows Automated Installation Kit hjälper användaren att installera, konfigurera och distribuera olika Windows operativsystem beroende på version. [2]

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=696dd665-9f76-4177-a811- 39c26d3b3b34&displaylang=en

HTA = HTML Application, förklaring finns i rapporten.

MAXI = Ett samlingsnamn för programvaror som Komatsu Forest har utvecklat.

Imagefil/Imagefiler = Imagefiler är en avbildning av media så som CD/DVD, hårddisk eller annan digital media, dessa kan användas för att återställa det man avbildat.

1.2 Problembeskrivning

Största delen av Komatsu Forest maskiner använder sig av ett grundsystem där MAXI programvarorna är lagrad på en hårddisk. Då grundmjukvaran placerad på hårddisken som hanterar och behandlar informationen från maskinen fallerar av hårdvarufel, virus eller användarmisstag så blir maskinen obrukbar, teknikerna på plats behöver då snabbt kunna ersätta den trasiga mjukvaran med ny. Hårdvarufelen är inte speciellt vanliga utan mestadels är det användarmisstag eller virus. Detta beror på att mjukvaran i grunden är Windows miljö och att skogsbolagen vill kunna installera egna programvaror på maskinerna.

Komatsu Forest har tidigare hanterat detta genom att skicka ut enstaka eller flera återställnings CD/DVD-skivor och även disketter från deras reservdelslager till teknikern eller erbjudit nerladdningsbara CD/DVD-speglingar. Ur tidsperspektiv så har utskick av

(7)

dessa skivor ut till tekniker varit en dålig lösning då transporttiden för paketet/brevet kunnat ta flera dagar upp till veckor. Nerladdningsbara CD/DVD-speglingar har därför varit den lösning som blivit mer och mer viktig och använd av teknikerna. Men för att återställa speglingarna till hårdvaran så krävs det tid och kunskap för att skapa en bootbar miljö där installation av speglingarna kan ske. Denna miljö har skapats på CD/DVD- skivor men då flera av dagens maskiner inte har möjlighet att läsa skivor och att imagefilerna börjat bli så stora att de inte längre ryms på ett sådant medium, så krävs en annan lösning. Många skogsföretag har även valt bort läsaren i datorn vid beställning.

Lösningen ska både vara snabbare och vara kompatibel med de nya maskinerna och i så stor utsträckning även för de äldre maskinerna som Komatsu Forest producerat.

2. Syfte:

Detta examensarbete syftar till att effektivisera och lösa problemet med att skapa en bootbar miljö där återställning av mjukvara till hårdvara kan ske. Den bootbara miljön ska använda sig av ett överliggande skal som gör att återställningsarbetet sker utan att användaren ska behöva leta upp program och imagefilen manuellt, detta för att kunna snabba upp processen av återställning och få bort onödiga tidskrävande och krångliga steg.

3. Mål:

Två program ska tas fram, CreateUSBboot för skapandet av den bootbara miljön på mediet och InstallHelper som arbetar i den miljön för att hantera imagefilen som ska installeras på hårdvaran.

Då alla nuvarande maskiner som är tänka för denna lösning är utrustade med USB- anslutningar så är programmen tänkta att behandla USB-minnen.

Programmen ska vara lätta att använda och bestå av ett guidat upplägg där användaren utför handlingar med hjälp av knapptryckningar. De svårare stegen som kräver mest tid av teknikerna ska automatiseras i så stor utsträckning som möjligt.

Teknikerna ska på så sätt ha möjlighet att snabbt kunna skapa en bootbar miljö och vid körning av den miljön utan problem kunna installera rätt mjukvara på rätt maskin.

Tillvägagångssättet är tänkt att vara utformat som bild nedan visar.

(8)

Komatsu kommer placera ut en stationär server för internetaccess där imagefiler, informationsfiler, program för återställning av image och de två programmen som förenklar skapandet av boot och hjälper användaren vid återställning av imagefiler lagras.

Dessa filer laddas ner av användaren via en internetanslutning till en arbetsstation som blir den dator där skapandet av det bootbara usb-minnet genomförs. Efter att all information tankats ner till arbetsstationen startar användaren medföljande program och går igenom steg för steg och skapar tillslut ett bootbart usb-minne med Windows PE installerat. På det minnet flyttas även valda imagefilen/filerna med tillhörande textfil, en konfigurationsfil och programfilerna över av programmet.

Användaren kopplar därefter lös minnet från arbetsstationen och ansluter det till vald PC i skogsmaskinen och startar upp. Under uppstart så väljer användaren att köra operativsystemet från USB-minnet, det i sin tur bootar upp Windows PE. Väl där så upptas skärmen av det andra programmet InstallHelper och guidar användaren att välja en imagefil som ska installeras. Programmet sköter sedan resten och väljer därefter ut rätt program och startar det med medföljande argument om tillgängligt.

4. Teori:

4.1 Windows PE 3.0

Windows PE 3.0 är ett nerbantat operativsystem baserat på Windows 7 kärnan som har vissa begränsningar men även fördelar. Windows PE utvecklades för att kunna utföra

(9)

installation av nya operativ, kopiera diskspeglingar från nätverk, återställningar och andra administratörsbehov och kan placeras på ett CD/DVD/USB-minne eller en hårddisk.

Operativsystemet är inte designat för att användas som ett primärt system, utan ska ses som ett system för installationsmiljö där man kan exekvera vissa utvalda program, som är utvecklade för felsökning av korrupta filer och/eller återställning av mjukvara.

När man skapar en Windows PE 3.0 installation så har man möjlighet att lägga till paket beroende på vilka behov man, detta för att hålla nere storleken på operativsystemet. Med WinPE 3.0 så följer dessa paket med i Windows AIK.

WinPE-FONT – Tillägg för fler språk.

WinPE-HTA – Stöd för HTML applikationer med hjälp av att Explorers script motor.

Winpe-LegacySetup – Media funktioner som b.la. GUI tangentbord.

WinPE-MDAC – Paket som innehåller SQL komponenter för b.la. Active Directory Objects (ADO).

WinPE-PPPoE – Aktiverar punkt till punkt förbindelse over Ethernet.

WinPE-Scripting – Support för att köra batch filer med WSH script objekt.

WinPE-Setup – Filer för att installera Windows.

WinPE-Setup-Client – Paket som behövs för att använda setup.

WinPE-Setup-Server – Paket som behövs för att WinPE-Setup.

WinPE-SRT – Lägger till en återställningsplattform för automatisk system diagnos och reparation.

WinPE-WMI – Stöd för system undersökning.

WinPE-WDS-Tools – Paket som innehåller Windows utplacering/installations tjänst.

Här listas några utvalda fördelar och nackdelar med Win PE som är viktiga att tänka på.

Utvalda Fördelar:

 Datorer går att boota utan underliggande operativsystem.

 Stöd för NTFS och nyare version av diskpart.

 Stöd för inläsning av CD,DVD,USB minnen.

(10)

Utvalda nackdelar:

 Inget stöd för .Net Framework.

 Kan köras i max 72 timmar.

 Ingen fjärrstyrning.

 Ändringar som görs i Windows PE kommer inte vara kvar vid nästa uppstart.

 Betäckningar av diskar kan ändras under nästa uppstart.

 Inget stöd för Windows Installer .msi.

 Kan inte boota upp från ett mål som består av tecken som är av annat språk än engelska.

[3] http://technet.microsoft.com/en-us/library/dd799308%28WS.10%29.aspx (19-05-2011)

4.2 .Net Framework 2.0

Valet att utveckla CreateUSBboot för .NET Framework 2.0 togs för att stödet av operativsystemen skulle bli så stort som möjligt, och att funktionerna som följer med i de senare versionerna inte krävdes för att lösa de uppgifter som var utsatta. Versionerna på .Net Framework kan ses som trappsteg, där varje ny version tillför något nytt till komponenten.

Då programmet är baserat på 2.0 kommer här en kort förklaring av paketen. Mer ingående information går att hämta på Microsofts hemsida eller via referens.

2.0: Inför språket, stödet för forms, ASP.NET och ADO.NET [4]

http://msdn.microsoft.com/library/zw4w595w.aspx (19-05-2011) [5]

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD- AAB15C5E04F5&displaylang=en (05-06-2011)

3.0: Tillför Windows Presentation Foundation, Windows Communication Foundation, Windows Workflow Foundation, and Windows CardSpace. [6]

http://www.microsoft.com/downloads/en/details.aspx?familyid=10CC340B-F857-4A14-83F5- 25634C3BF043&displaylang=en

3.5: Tillför Language Integrated Query och tillägg för Visual Studio. [7]

http://www.microsoft.com/downloads/en/details.aspx?familyid=333325FD-AE52-4E35-B531- 508D977D32A6&displaylang=en

4.0: Mestadels små tillägg och förbättringar. [8]

http://www.microsoft.com/downloads/en/details.aspx?familyid=9cfb2d51-5ff4-4491-b0e5-b386f32c0992

Nedanför finns en överblick av .NET Framework.

(11)

4.2 HTML Application

Genom att göra om en vanlig HTML sida till ett HTA program så kan man se HTML sidan som en körbar fil, precis som ett vanligt program. Säkerheten sänks men användaren kan fortfarande använda HTML-kod, CSS och köra script. Genom att Windows PE har stöd för just HTA så är detta ett bra sätt att köra program under operativsystemet.

HTA är annars lämpligt att använda när guider ska skrivas eller programmering av små applikationer.

Implementationen sker på tre olika sätt antingen som en webbmodell, paketmodell eller som hybrid av de två.

Enda kravet som finns är att användaren har Internet Explorer 5 eller senare installerat, då .hta formatet endast stöds av webbläsaren från Microsoft.

[9] http://msdn.microsoft.com/en-us/library/ms536496(v=vs.85).aspx

4.4 ActiveX Object

ActiveX Object möjliggör exekvering av programkod via webben. ActiveX är inget som används i stor utsträckning när det gäller webblösningar då webbutvecklare oftast inte vill att webbplatsen ska ha åtkomst till systemfiler. Men vid utvecklande av sidor som är direkt kopplade till datorn kan ActiveX vara en lösning i jämförelse mot C#.

ActiveX Object ger tillgång till att köra program, söka efter systemfiler och annat som finns på systemet där programmet körs. [10] http://msdn.microsoft.com/en-

us/library/aa751972(VS.85).aspx[11]

http://www.microsoft.com/presspass/press/1996/mar96/activxpr.mspx[12]

(12)

http://msdn.microsoft.com/en-us/library/7sw4ddf8(v=VS.85).aspx[13] http://www.active- x.com/articles/whatis.htm (19-05-2011)

4.5 USB

USB är en seriell buss där anslutningar av enheter sker. Då USB-standarden slagit igenom på bred front inom datorvärlden så är det ett perfekt format att fokusera på när det gäller lagring av information. Det utbredda stödet, möjligheten till större lagring genom stora USB-minnen och den högre hastigheten gör USB till en lösning vid återställning. [14]

http://books.google.com/books?id=fRvbxgH4wmsC&pg=PA7#v=onepage&q&f=false (06-06-2011)

4.6 Image for Windows

Image for Windows är en mjukvara utvecklat av TeraByte. Programmets uppgift är att skapa och återställa säkerhetskopieringar av hårddiskar eller partioner av hårddiskar och är gjort att köras antingen i grafiskt läge eller genom kommandon från en

kommandoprompt. Säkerhetskopieringen för interna, externa, nätverksdiskar,

CD/DVD/BluRay och USB-minnen sker genom att varje sektor från mediet kopieras.

Detta betyder att alla information tas med, även bootsektorer och annan gömd information som missas med program som kopierar på fil nivå.

Programmet är kompatibelt med alla versioner av Windows så som Windows 7 och Windows Vista. [15]http://www.terabyteunlimited.com/image-for-windows.htm

5. Åtkomst:

5.2 Mjukvara

Programmen som ska levereras till Komastu Forest utvecklas för Windows NT baserade maskiner och kräver därför vissa underliggande systemfiler för att fungera. Programmen kommer därför inte vara kompatibla med andra operativsystem som Unix/Linux/OSx m.fl.

Windows NT familjen innebär att det behövs ett OS som är utvecklat av Microsoft.

Windows 2000, Windows XP, Windows Vista och Windows 7 är några operativsystem som är baserade på Windows NT kärnan.

Första programmet CreateUSBboot som har hand om guidandet för att skapa den bootbara miljön skrivs i C# och är baserat på .NET Framework 2.0. Därför krävs det att datorerna som ska köra detta program minst har den versionen installerad i systemet. Om arbetsstationen är utrustad med en nyare version av .NET Framework t.ex. version 4.0 så kommer programmet fungera eftersom efterkommande versioner är bakåtkompatibla.

InstallHelper för återställningen av mjukvara skrivs i HTML-Application med underliggande ActiveX Object, Då Windows PE inte stödjer .NET Framework fick programmet utvecklas med ett annat språk. Fördelen med att utveckla med HTA och

(13)

ActiveX Object är att programmet körs i webbläsaren fast under lokala former och kräver ingen internetanslutning.

Programmet kommer bara att användas under Windows PE miljö och efter genomförd guide av första programmet CreateUSBboot där andra programmet InstallHelper kopieras över så behövs inga ytterliga krav av mjukvara/systemfiler för att programmet ska fungera som det ska. Den version av Windows PE som är installerat via CreateUSBboot på USB- minnet är utrustad med det paket som krävs för att köra HTA tillsammans med ActiveX Object.

Programmen kommer göras tillgängliga för användaren att ladda hem via en server som ägs av Komatsu Forest. Användaren kommer därför att behöva en internetanslutning för att kunna komma åt och använda programmen. Tillsammans utgör programmen och medföljande filer ungefär 170MB. Dessa kommer inte gå att exekvera direkt från en internetlösning utan måste köras lokalt från arbetsstationen, det enda som genomförs via internet är en förflyttning av data till arbetsstationen.

5.3 Hårdvara

Hårdvarumässigt för att köra de olika programmen så finns inga direkta utsatta krav utan rekommendationen är att använda en arbetsstation som minst klarar att hantera Windows XP.

När det gäller uppstart och inladdning av Windows PE så krävs det att finns tillräckligt med tillgängligt internt minne. I versionen som följer med är rekommendationen att datorn ska vara utrustad med 512MB. Detta är dock inget teknikern behöver fundera på då

dagens maskiner som hanterar USB-minnen är utrustade med tillräckligt minne.

Rekommendationer för Windows XP. [16] http://support.microsoft.com/kb/314865

 Pentium 233 MHz-processor eller snabbare (300 MHz rekommenderas)

 Minst 64 megabyte (MB) RAM (128 MB rekommenderas)

 Minst 1,5 GB tillgängligt utrymme på hårddisken

 CD-ROM- eller DVD-ROM-enhet

 Tangentbord och Microsoft-mus eller något annat kompatibelt pekdon

 Grafikkort och bildskärm för Super VGA (800 × 600) eller högre upplösning

6. Genomförande/Metod:

6.2 Visual Studio 2010

Under utvecklandet av programvarorna så har Visual Studio 2010 varit det program som använts mest som utvecklingsmiljö när kod skrivits. Visual Studio är ett program utvecklat av Microsoft och fokuserar på språken Visual Basic, C++, C#, J# och F# med

(14)

medföljande kompilator. För användning och kompilering av andra språk finns nerladdningsbara komponenter.

Visual Studio 2010 är alltså en programvara där man utvecklar applikationer för Windows och internetbaserade och anpassade applikationen och därför är kod hanteraren betydande.

Visual Studio finns allt det stöd som man behöver som bland annat framhävning av syntax och ta fram kod förslag.

Programmet ger en större möjlighet att snabbt kunna skapa Windows applikationer som har ett det utseende som ger en enhetlig känsla mot resten av Windows programmen och även en lättarbetat miljö som är lätt att förstå och hantera. [17] http://msdn.microsoft.com/en- us/library/bb386063.aspx (06-06-2011)

6.3 Form

CreateUSBboot är uppbyggt med hjälp av Forms som ingår i Visual Studio 2010, Windows forms är egentligen namnet på det grafiska programmeringsgränssnittet som integrerades i .NET Framework 2.0.

Forms ger en ett grafiskt gränssnitt genom att generera kod.

Genom att använda sig av detta kan tid sparas genom att lätt få upp ett fungerande grafiskt gränssnitt för användaren och fokus kan istället läggas på att skriva koden som ska hantera de olika funktionerna. [18] http://msdn.microsoft.com/en-us/library/dd30h2yb.aspx (03-06-2011)

6.4 Varför Guideupplägg?

Genom att använda sig av ett guidat upplägg för användaren där varje sida gör ett steg i processen för vad som ska åstadkommas så kan man slippa att fel görs och användaren får möjligheten att gå framåt och bakåt beroende på om denna vill skippa ett steg eller göra om ett föregående.

6.5 Utseende

Utseendet för programmen har fokuserats på att göras så lätthanterliga och ge en

samhörighet med andra program som finns inom företaget. Bilder har lagts till för att visa anknytning till Komatsu Forest så att teknikern snabbt förstår att rätt program startats upp.

6.6 Konfigurationsfil

Konfigurationsfilen är uppbyggd för att användas av både CreateUSBboot och andra programmet InstallHelper och är uppdelad i fyra delar. Dessa delar har olika funktioner för att programmen ska fungera som de ska och att filer flyttas och installeras på rätt sätt.

Detta gör att programmen blir mer dynamiska för uppdateringar gällande mjukvaror och

(15)

nya imagefiler med andra filändelser. Konfigurationsfilen hanteras och modifieras av anställda på Komatsu Forest.

Varje rad i avsnitten i konfigurationsfilen har en siffra som utgångspunkt för att koppla ihop de olika delarna. Om ett program har nummer 1, så kommer argument för det programmet kopplas ihop med att nummer 1 anges före.

Programs:

Här listas alla program som administratören vill ska kunna användas, programmet för att skapa boot och kopiering använder även programs-delen för att hitta rätt mapp för

kopiering. Programnamnet blir namnet på mappen, det är alltså viktigt att mappnamnet är detsamma som programs för att alla programfiler ska överföras till USB-minnet.

Argument:

Under argument listar den ansvarige för konfigurationsfilen vilket argument till valt program som ska köras vid återställning. Läggs inte något argument in för

återställningsprogramvaran så kommer vald imagefil för återställning användas som argument.

Startfile:

Här ligger namnet för uppstartsfilen för varje program.

Extensions:

Här skrivs vilka filändelser som hanteras av vald programvara.

(16)

6.7 Programfiler

När teknikern kommer till steget där återställningsimagen för hårdvaran på maskinen ska genomföras krävs det ett externt program som hanterar återställningsfasen beroende på vilket format återställningsfilen har så krävs ett program som kan hantera detta.

Programmen som ska hantera imagefilerna laddas ner tillsammans med första programmet CreateUSBboot och varje program kopieras över när en imagefil har en filändelse som stöds av det programmet.

6.8 Användning av Image For Windows

Bootimagen är skapad genom att göra en backup på ett fungerande USB-minne med Windows PE och installerade paket. Andra programmet InstallHelper som ska fungera som skal när Windows PE startar upp ligger också installerat på USB-minnet.

Programmet är det verktyg som första programmet CreateUSBboot använder för att montera bootimagen till USB-minnet. Image for Windows är även det verktyg som använts för att skapa huvud bootimagen.

6.9 Varför USB-minne?

Valet av att köra USB-minne för att lagra den data som behövs för återställning har tidigare inte varit en lösning som fungerat då lagringskapaciteten på ett USB-minne inte nått upp till de krav som Komatsu Forest behövt. Men då dagens USB-minnen oftast är större än 4GB så får teknikern plats med både Windows PE med tillhörande program och imagefiler för installation och återställning av mjukvara. Dagens maskiner producerade av Komatsu Forest och tidigare modeller är inte alltid utrustade med CD/DVD läsare. Detta för att öka utrymmet i kupén genom att förminska datorhårdvarans storlek. USB-minnen har därför kommit upp som en mogen lösning.

Detta har lett till att CD/DVD skivor börjat kännas både föråldrat och klumpiga och i stor utsträckning inte kompatibla med maskinerna. USB-minnen är däremot både behändiga att bära runt och inte lika utrymmeskrävande som CD/DVD-fodral. Smuts och skitig omgivning är något som lätt tar död på en CD/DVD medan ett USB-minne med ett skyddande fodral kan stå emot miljön effektivare.

CD/DVD skivor är oftast inte åter skrivningsbara, så för varje ny återställningsfil så krävs det att teknikern bränner ut en ny skiva. Detta leder då till att teknikern antingen bär runt på alla skivor under perioder när han är ute i fältet. Eller att skivorna är staplade vid någon arbetsplats.

Genom att använda ett USB-minne som skapats för att vara bootbar med Windows PE installerat så behöver bara teknikern bara bära runt på ett medium istället för flera

(17)

CD/DVD skivor ifall någon maskin ute i fältet får problem med fallerande mjukvara och kan på så sätt snabbare komma ut till maskinen och göra en återställning om imagefilen redan är lagrat på USB-minnet.

En av tankarna med att använda sig av USB-minnen är just utrymmet, genom att använda sig av ett större minne 16,32,64GB så kommer teknikern troligtvis att lagra alla imagefiler som behövs för maskinparken på minnet och vid fallering av mjukvaran så slipper teknikern flytta över imagefiler till USB-minnet då detta redan är gjort i ett tidigare stadium. Då USB-minnet kommer hänga på någon nyckelknippa eller ligga i någon ficka så behöver teknikern heller inte transportera sig till någon arbetsplats för att hämta återställningsmaterialet utan kan direkt ta sig ut till den plats där maskinen står.

6.10 Skapa USB-boot utan program

För att skapa ett bootbart USB-minne så finns det olika tillväga sätt beroende på vilket operativsystem man använder sig av. För att skapa de nödvändiga bootsektorerna som behövs för att starta ett operativsystem så behövs det göras ett par steg där man bearbetar USB-minnet. Under Windows XP går det inte att skapa USB-boot utan ett externt program. Ett externt program går att hämta på internet men är oftast både krångligt och ger ibland inte det resultat man är ute efter. Programmen klarar helt enkelt inte att skapa en partition som har NTFS stöd, vilket krävs för att kunna lagra större filer och kunna utnyttja större storlekar på USB-minnen.

Under Windows 7 finns det ett integrerat verktyg, Diskpart. Som används för att formatera och hantera lagringsutrymmen. Det finns även en föråldrad version av Diskpart med i Windows XP, som inte stödjer allt som krävs. Under Windows 7 däremot kan man behandla USB-minnet med formatering till NTFS och göra minnet bootbart från uppstart.

Tanken var att använda Diskpart som är integrerat i både Windows XP och Windows 7 för att slippa använda sig av utomstående program för att skapa de viktiga bootsektorerna.

Problemet var att Windows XP har den föråldrade versionen av Diskpart där de löstagbara lagringsmedierna inte listades upp. Alltså går det inte att hantera dessa inom programmet utan det krävs att man uppgraderar till nyare operativsystem där Diskpart är uppdaterad med stöd för dessa medium. Men då dagens datorer som används av teknikerna inte säkert använder sig av Windows 7 och då Windows XP fortfarande används i viss utsträckning så fick en annan lösning tas fram.

6.11 Skapa skal

Vid uppstart av Windows PE så kräver operativsystem att ett skal körs. Om inget förval av skal gjorts kommer ett kommandofönster att visas. Genom att lägga InstallHelper, det andra programmet, som skal, så kommer användaren inte kunna göra något annat i

(18)

Windows PE förutom att använda sig av programmet. Stänger användaren av programmet startar datorn om.

6.12 Problem Partitionskapande

Under planeringsfasen så var tanken att använda ett USB-minne med uppdelade

partitioner. Ett för de viktiga systemfilerna och uppstartsfasen av Windows PE medan den andra partitionen skulle lagra imagefilerna, konfigurationsfilen och programmen för återställning. Men då komplikationer med att operativsystem som inte kunde identifiera de olika partionerna så valdes alternativet att göra en stor partition med mappar.

7. Användarhandledning:

7.1 CreateUSBboot

(19)
(20)
(21)

7.2 InstallHelper

(22)

8. Resultat:

8.2 Tester

Testar har skett under utvecklingsprojektet och buggar har fixat allteftersom. Sista veckan inom projekttiden togs extra tid till buggsökningar.

Nuvarande version på programmen är i 1.0 och ska fungera i både Windows 7 och Windows XP och andra programmet InstallHelper fungerar i Windows PE miljö.

Testerna har bestått i att varje steg i programmen utförts i så stor utsträckning som möjligt, slutskedet för formatering och utplacering av mjukvara på hårdvara har inte kunnat genomföras då färdiga imagefiler inte gått att tillgå.

8.3 Algoritmbeskrivning CreateUSBboot

Hämta disknummer

Hämta disknummer som kräver information från genom valt löstagbar hårdvara (USB- minne), alltså vilken enhetsbeteckning som lagringsmediet blivit tilldelat av operativsystemet.

1. Skapar en ”anslutning” till WMI för att få information om systemet.

2. Skapa en fråga som hämtar all information om Windows diskpartitioner.

3. Skapa en sökning som söker med frågan om partitionerna i WMI.

4. Hämta alla diskar.

5. Gå igenom varje disk.

5.1. Skapa en fråga som frågar efter vilka tillhörande egenskaper som finns till vald disk

5.2. Sök i WMI med hjälp av frågan och fånga upp sökresultatet.

5.3. Gå igenom varje partition.

5.3.1.1. Kolla om partitionsbetäckningen överstämmer med vald volymbetäckning.

5.3.1.2. Om betäckningen är lika så returnera disknumret.

(23)

5.3.1. Kolla nästa partition

6. Om ingen hittades returnera att inget nummer hittades.

Leta dubbletter

Letar efter dubbletter i en vald listbox.

1. Kolla om vald listbox är ett.

1.1 Repetera tills alla objekt kollats.

1.1.1 Om objekt 1 är samma som föregående objekt 1.1.1.1 Ta bort föregående objekt

1.2 Markera att kolla nästa objekt

1.3 Om markerat objekt är större än listans längd, avbryt 2. Kolla om vald listbox är två

2.1 Repetera tills alla objekt kollats.

2.1.1 Om objekt 1 är samma som föregående objekt 2.1.1.1 Ta bort föregående objekt

2.2 Markera att kolla nästa objekt

2.3 Om markerat objekt är större än listans längd, avbryt 3. Återgå till föregående funktion.

Flytta alla mappar och filer för program

Funktion för att hitta alla mappar i en grundmapp och kalla på funktion för kopiering av grundmapp och undermappar.

1. Skapa en stack där alla mappar lagras

2. Om grundmapp inte finns skicka felmeddelande.

3. Lägg grundmappen till stacken.

4. Gå igenom tills stacken den är tom.

4.1 Hämta senaste mappen i stacken

(24)

4.2 Hämta alla mappar i vald mapp 4.3 Hämta alla filer i vald mapp 4.4 Hämta namnet på vald mapp

4.5 Skapa en sökväg dit filerna ska kopieras 4.6 Kalla på en funktion för att kopiera filer 4.7 Lägg undermapparna i stacken.

Skapande av Boot och installation av Windows PE med program.

Om användaren väljer att bearbeta USB-minnet så startar Image for Windows med vissa argument.

1. Hämta disknumret

2. Starta en process med genvägen till imagew.exe och med argument för återställning.

Överflyttning av filer och check

Funktion som kopierar filer från en plats till en annan. Funktionen tar in två in parametrar.

En mapp där innehållet ligger och en mapp dit filerna ska kopieras.

1. Om mappen inte finns

1.1. Skapa mapp utifrån vald sökväg

1.2. Hämta alla filer från mappen med innehållet som ska kopieras.

1.3. Gå igenom varje fil

1.3.1. Sortera ut filnamnet ur sökvägen 1.3.2. Kopiera filen till vald mapp

InstallHelper:

Hämta Programnamn

Hämtar konfigurationsfilen och kollar vilket program som är knutet till valt nummer som är från extension.

(25)

1. Ladda in konfigurationsfilen.

2. Gå igenom alla rader i konfigurationsfilen till slutet.

2.1. Läs raden.

2.2. Om slutet av programdelen i konfigurationsfilen nåtts markera fortsätt till 0 för avslut

2.3. Om programdelen nåtts sätt fortsätt till 1

2.3.1. Om numret stämmer med något nummer markerat för ett program 2.3.1.1. Kopiera namnet på programmet, alltså foldernamnet

2.3.1.2. Sätt att inte fortsätta 2.3.2. Sätt att fortsätta Lägg till filer i lista

Denna funktion lägger till imagefiler till listan där användaren kan välja vad som ska återställas. Funktionen tar två in-värden texten som ska läggas in och platsen

1. Skapa ett element för texten

2. Hämta listan och lägg till elementet som skapades.

3. Lägg till text och platsen 4. Om filen är en .txt eller .ini fil

4.1. Ta bort från listan

Lägg till information för image

Funktionen lägger till information om imagefilen från en textfil.

1. Ta bort om information redan finns på platsen.

2. Hämta sökvägen till imagefilen och lägg till .txt som filändelse istället för imagefilens .filändelse

3. Kolla om .txt filen finns.

3.1. Finns den öppna upp för läsning.

3.2. Gå igenom filen tills den är slut.

(26)

3.2.1. Läs rad.

3.2.2. Om raden är längre än 30 tecken.

3.2.2.1. Dela upp raden tills sista raden inte är längre än 30 tecken.

3.2.2.2. Gå igenom varje rad, skriv ut och lägg till ett enterslag efter raden.

3.2.3. Om raden är kortare än 30 tecken.

3.2.3.1. Skriv ut raden.

3.3. Finns ingen textfil så skrivs ett meddelande som förklarar detta.

Starta process

En funktion som startar rätt program med valt argument.

1. Hämta argumentet till valt program

2. Starta ett nytt skal med hjälp av ActiveX Object.

3. Om det finns något argument inlagt i konfigurationsfilen.

3.1. Lägg in sökvägen till imagefilen i argumentet

3.2. Skapa parametern för uppstart med hjälp av valt program och argumentet 3.3. Starta kommandoprompten med parametern som skapades

4. Om det inte finns något argument 4.1. Starta programmet utan argument 5. Gå till nästa sida i programmet.

9. Programbeskrivning:

9.1 CreateUSBboot

Det här är programmet som användaren först kommer i kontakt med när ett USB-minne ska göras om till bootbart med Windows PE. När användaren startar programmet möts den av en välkomstsida där information om programmet och vad som kommer att ske i de olika stegen tas upp. Användaren kan därefter välja att klicka vidare till nästa sida eller att stänga av programmet. Går användaren vidare så visas en lista med anslutna USB-minnen.

För att gå vidare i programmet så krävs då att ett minne väljs, visas inget USB-minne i listan så betyder det att inget minne är anslutet. Efter att användaren valt och accepterat ett

(27)

minne genom att välja ett av alternativen och trycka till nästa sida, så får användaren möjlighet att göra om USB-minnet till bootbart med Windows PE. Detta alternativ är valfritt, om användaren redan gjort detta steg tidigare och bara vill flytta över imagefiler (filen som används vid återställningen) så fortsätter användaren till nästa sida. Väljer användaren att trycka på knappen för bearbetning av USB-minnet startar ett program upp.

Programmet startar Image for Windows och efter genomförd process som sker automatiskt är USB-minnet klart att boota på. Vid nästa sida får användaren välja att kopiera över imagefiler. Efter att användaren valt de filer som ska flyttas över trycker användaren på nästa och filerna flyttas över med tillhörande program och konfigurationsfil.

Nedanför visas bilder från programmet.

(28)

Sida 1:

Sida 2:

Sida 3:

(29)

Sida 4:

Sida 5:

(30)

9.2 InstallHelper

Det här är det första som möter användaren efter att Windows PE startat upp på

skogsmaskinens PC. Programmet InstallHelper lägger sig alltså som ett skal i Windows PE och är det enda program som användaren är tillåten att köra. På första sidan väljer användaren en återställningsimage för hårdvaran. Klickar användaren på en imagefil i listan visas information om just den imagefilen bredvid. På detta vis kan användaren säkerhetsställa att det är rätt image för hårdvaran som återställningen ska utföras på. När användaren har bestämt sig för en imagefil så trycker denna på ”Start Restore” där användaren skickas till nästa sida för att bekräfta valet. Är valet rätt och användaren accepterar så startas rätt program utifrån vald imagefil. När återställningen är genomförd av det externa programmet så visas en sida som bekräftar detta och användaren får möjlighet att starta om datorn.

Nedanför visas bilder från programmet.

(31)

Sida 1:

Sida 2:

Sida 3:

(32)

10. Diskussion/Slutsats

Syftet med detta arbete var att bygga två program som kunde hjälpa teknikerna att återställa mjukvara på skogsmaskiner. Jag tycker att projektet har varit lyckat och två program har tagits fram för ändamålet. Genom att använda sig av Windows PE genom en USB-minnessticka så kan processen utföras snabbare och med hjälp av programmen förenklas alla stegen betydligt då teknikern slipper kunskapen och informationsletandet om hur bootsektorer fungerar och hur program körs under Windows PE. Allt skapas automatiskt genom knapptryckningar och val av användaren.

Arbetet med projektet följde tidsplanen relativt bra. Problem som uppstod löstes oftast inom veckoramarna. Enda riktiga bakslaget var InstallHelper som var färdigskrivet i C#, men då Windows PE inte stödde C# med .NET Framework så fick programmet skrotas och ett nytt program fick skrivas.

Annars har jag trivts med projektet och jag har haft bra stöd av Carl-Henrik Lindmark tillsammans med Peter Assarsson på Komatsu Forest. Under projektets gång fick jag möjlighet att arbeta på deras arbetsplats med eget rum vilket var intressant men även snabbade upp besluten då diskussioner kunde göras på plats istället för via mail konversation.

10.1 Vidareutveckling

Genom att tvinga teknikerna att använda ett operativsystem baserat på Windows 7 så skulle diskpart kunna användas som grund för att skapa bootsektorerna på USB-minnet, detta skulle leda till att Image For Windows programvaran kan plockas bort från det första programmet CreateBootUSB vilket skulle leda till lägre kostnader och en mer generell lösning.

11. Tack till

Carl-Henrik Lindmark (Komatsu Forest / Design Engineer) Peter Assarsson (Komatsu Forest / General Manager)

(33)

Stig Byström (Umeå Universitet)

12. Referenslista

[1] http://www.komatsuforest.se/default.aspx?id=10836 (19-05-2011)

[2] http://www.microsoft.com/downloads/en/details.aspx?FamilyID=696dd665-9f76-4177-a811- 39c26d3b3b34&displaylang=en (05-06-2011)

[3] http://technet.microsoft.com/en-us/library/dd799308%28WS.10%29.aspx (19-05-2011)

[4] http://msdn.microsoft.com/library/zw4w595w.aspx (19-05-2011)

[5] http://www.microsoft.com/downloads/en/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD- AAB15C5E04F5&displaylang=en (05-06-2011)

[6] http://www.microsoft.com/downloads/en/details.aspx?familyid=10CC340B-F857-4A14-83F5- 25634C3BF043&displaylang=en (05-06-2011)

[7] http://www.microsoft.com/downloads/en/details.aspx?familyid=333325FD-AE52-4E35-B531- 508D977D32A6&displaylang=en (05-06-2011)

[8] http://www.microsoft.com/downloads/en/details.aspx?familyid=9cfb2d51-5ff4-4491-b0e5- b386f32c0992 (05-06-2011)

[9] http://msdn.microsoft.com/en-us/library/ms536496(v=vs.85).aspx (05-06-2011)

[10] http://msdn.microsoft.com/en-us/library/aa751972(VS.85).aspx (03-06-2011)

[11] http://www.microsoft.com/presspass/press/1996/mar96/activxpr.mspx (03-06-2011)

[12] http://msdn.microsoft.com/en-us/library/7sw4ddf8(v=VS.85).aspx (03-06-2011)

[13] http://www.active-x.com/articles/whatis.htm (19-05-2011)

[14] http://books.google.com/books?id=fRvbxgH4wmsC&pg=PA7#v=onepage&q&f=false (06-06-2011)

[15] http://www.terabyteunlimited.com/image-for-windows.htm (03-06-2011)

[16] http://support.microsoft.com/kb/314865 (03-06-2011)

[17] http://msdn.microsoft.com/en-us/library/bb386063.aspx (06-06-2011)

[18] http://msdn.microsoft.com/en-us/library/dd30h2yb.aspx (03-06-2011)

(34)

13. Bilagor

CreateUSBboot – Funktioner:

/*---*/

/* ---HERE ARE FUNCTIONS THE PROGRAM CALL---*/

/*---*/

public string GetDiskNumber() {

//Create a Scope from the WMI classes for management

ManagementScope scope = new ManagementScope(@"\root\cimv2");

//Create a Query that gets all the information from Win32_DiskPartition ObjectQuery query = new ObjectQuery("select * from Win32_DiskPartition");

//Create new searcher based on the scope and the query

ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);

//Get the drives

ManagementObjectCollection drives = searcher.Get();

foreach (ManagementObject current in drives) {

//Check which drive number each deviceID has

ObjectQuery associators = new ObjectQuery("ASSOCIATORS OF{Win32_DiskPartition.DeviceID=\""

+ current["deviceid"] + "\"} where AssocClass=Win32_LogicalDiskToPartition");

//Search through ManagementObject with scope and associators searcher = new ManagementObjectSearcher(scope, associators);

ManagementObjectCollection disks = searcher.Get();

//Go through each disk until the selected disk is found foreach (ManagementObject disk in disks)

{

//If deviceid from disk is the same as chosen drive by user.

//Then return the disknumber

if (disk["deviceid"].ToString() == (Global.Chosen_drive + ":")) {

return current["diskindex"].ToString();

} } }

return "Couldn't find a diskindex";

}

//Check if listbox have duplicates, if so remove it.

public void Check_duplicty(int chosen_box)

(35)

{

int a = 0;

bool done = false;

//Listbox1

if (chosen_box == 1) {

//loop while as long as done is false while (done == false)

{

//Go through each item

for (int b = listBox1.Items.Count - 1; b > a; b--) {

//if a duplicty is found delete one of them

if (listBox1.Items[a].ToString() == listBox1.Items[b].ToString()) {

listBox1.Items.RemoveAt(b);

} }

//add +1 to check next item a += 1;

//When all items been checked set done to true done = (a > listBox1.Items.Count - 1);

} }

//Listbox2

else if (chosen_box == 2) {

while (done == false) {

for (int b = listBox2.Items.Count - 1; b > a; b--) {

if (listBox2.Items[a].ToString() == listBox2.Items[b].ToString()) {

listBox2.Items.RemoveAt(b);

} } a += 1;

done = (a > listBox2.Items.Count - 1);

} } return;

}

//A Function that find the right path for selected image string GetAddedImage(string image)

{

//Check the images that are pre-loaded into the program.

if (Global.image_place != null) {

foreach (string item in Global.image_place) {

//If the path contains the name of the file if (item.Contains(image))

{

image = item;

break;

}

(36)

} }

//Check the images that are loaded by the user into the program.

if (Global.user_image_place != null) {

foreach (string item in Global.user_image_place) {

if (item.Contains(image)) {

image = item;

break;

} } }

//return the path to the image.

return image;

}

public bool IsProcessRunning(string name) {

//here we're going to get a list of all running processes on //the computer

foreach (Process clsProcess in Process.GetProcesses()) {

//if the process is found to be running then we //return a true

if (clsProcess.ProcessName.Contains(name)) {

return true;

} }

//otherwise we return a false return false;

}

public void TraverseTree(string root, string target_path) {

// Data structure to hold names of subfolders to be // examined for files.

Stack<string> dirs = new Stack<string>(20);

if (!System.IO.Directory.Exists(root)) {

throw new ArgumentException();

}

//Add root to stack dirs.Push(root);

while (dirs.Count > 0) {

string currentDir = dirs.Pop();

string[] subDirs;

string chosen_folder = "";

string new_target_path = "";

try {

//Get all directories in currentdir

subDirs = System.IO.Directory.GetDirectories(currentDir);

(37)

}

//If the user don't have permissions catch (UnauthorizedAccessException e) {

Console.WriteLine(e.Message);

continue;

}

//If the directory that are handle gets deleted catch (System.IO.DirectoryNotFoundException e) {

Console.WriteLine(e.Message);

continue;

}

string[] files = null;

try {

//Get all files in currentdir

files = System.IO.Directory.GetFiles(currentDir);

}

catch (UnauthorizedAccessException e) {

Console.WriteLine(e.Message);

continue;

}

catch (System.IO.DirectoryNotFoundException e) {

Console.WriteLine(e.Message);

continue;

}

//Get foldername

for (int j = root.Length; j < currentDir.Length; j++) {

chosen_folder = chosen_folder + currentDir[j].ToString();

}

//Create new target_path

new_target_path = target_path + chosen_folder;

//Call CopyFiles

CopyFiles(currentDir, new_target_path);

// Push the subdirectories onto the stack for traversal.

foreach (string str in subDirs) dirs.Push(str);

} }

public void CopyFiles(string source_path, string target_path) {

string filename = "";

string dest_file = "";

//If the folder doesn't exist

if (!System.IO.Directory.Exists(target_path))

(38)

{

System.IO.Directory.CreateDirectory(target_path);

//Get all files from the directory

string[] files = System.IO.Directory.GetFiles(source_path);

// Copy the files and overwrite destination files if they already exist.

foreach (string s in files) {

// Use static Path methods to extract only the file name from the path.

filename = System.IO.Path.GetFileName(s);

dest_file = System.IO.Path.Combine(target_path, filename);

System.IO.File.Copy(s, dest_file, true);

} } } } }

References

Related documents

Det är således angeläget att undersöka vilket stöd personalen är i behov av, och på vilket sätt stöd, till personal med fokus på palliativ vård till äldre personer vid vård-

Subject D, for example, spends most of the time (54%) reading with both index fingers in parallel, 24% reading with the left index finger only, and 11% with the right

Motionen fram håller att på landsting och regioner· som använder schemaläggning med stöd av algoritmiska metoder går arbetet med schemaläggning snabbare, man har mindre behov

Att skapa beslutsstödssystem från existerande system genom att använda Soft Systems Methodology och Prototyping Kapitel 3 - Resultat 3.3.6 Flyttbarhet Flyttbarhet

Allt som går att öppna i Windows får ett eget fönster, till exempel en mapp eller ett program. I Windows kan du öppna ett fönster på olika sätt, beroende på var du

RedHat är en kommersiell distribution av Linux som finns både på CDROM och för gratis nedladning från Internet.. Det är en mycket kompetent distribution och RedHat är med

Eftersom myndighetens registerförfattning endast medger elektroniska utlämnanden i särskilt angivna situationer kan det medföra att en person som exempelvis förekommer som part i

När en myndighet inte tillför underlaget till det enskilda målet eller ärendet ska myndigheten se till att information kan lämnas om vilken eller vilka databaser eller andra