Er worden nog steeds computers geleverd door diverse fabrikanten zonder installatie media. er staat dan vaak iets van een rescue image op de harddisk. Je kan bij de fabrikant uiteraard de juiste installatie media opvragen maar dit word door de meeste mensen vergeten. Als je dan zoals in dit voorbeeld een kapotte disk hebt en je wilt deze vervangen voor een andere je niet de originele Windows versie terug kan zetten. Ook als je de disk wilt vervangen voor een groter of sneller exemplaar loop je tegen de zelfde problemen aan.
Er zijn natuurlijk ook tools als Norton Ghost, maar waarom zou je betalen voor een product als het net zo makkelijk met een l gratis Linux live CD kan.
In deze beschrijving was het een kapotte disk, er waren veel bad sectors. het ging op een DELL laptop met een 60GB disk, deze was kapot en moest vervangen worden door een nieuwe en wel een 160GB exemplaar. Op de laptop stond Windows XP maar deze stappen zullen ook werken bij Windows vista, en Windows 7.
Wat heb je nodig
uiteraard gereedschap (schroeven draaier) om de oude disk en later de nieuwe disk in en uit het systeem te halen. Een Linux Live cd/dvd. bv Ubuntu of Knoppix, maakt allemaal niet zoveel uit het hoeft ook niet eens een recente te zijn. verder heb je externe opslag nodig in de vorm van een grote USB stick of USB harddisk je hebt ongeveer een 5GB vrije ruimte nodig kan ook minder zijn.
Stap 1 backup van de oude situatie
Boot het systeem van de live CD/DVD. als het systeem is gestart, sluit je de USB harddisk aan. openen een console/terminal Windows. en zorg dat je root rechten krijgt. bij de meeste live distributies kan je dan krijgen met sudo su –
ubuntu@ubuntu~$ sudo su - root@ubuntu:~#
We gaan nu controleren of we de oude disk kunnen zien en of we de externe usb harddrive ook zien.
root@ubuntu:~# fdisk -l Disk /dev/sda: 58.5 GB, 58506416640 bytes 255 heads, 63 sectors/track, 7113 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x434e78fe Device Boot Start End Blocks Id System /dev/sda1 1 10 80293+ de Dell Utility /dev/sda2 * 11 6719 53890042+ 7 HPFS/NTFS /dev/sda3 6721 7112 3148740 db CP/M / CTOS / ... Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x469d60df Device Boot Start End Blocks Id System /dev/sdb1 1 121601 976760001 c W95 FAT32 (LBA)
We zien de oude disk met 3 partition er op. en de usb disk van 1TB is ook aanwezig. waarschijnlijk is de usb disk ook al automatisch gemount op het systeem we moeten alleen nog even kijken wat de juiste directory is. waarschijnlijk iets van /media/usbdisk
root@ubuntu:~# df -h
tijdelijk geen juiste df -h output voorhanden komt nog. maar het mountpoint wat we gebruiken is /media/usbdisk
we gaan nu als eerste de partition table weg schrijven naar de USB disk. wil je meer details over cloning van partition table kijk dan in het Clone partition table artikel. om de partition table te backupen gebruik je sfdisk.
root@ubuntu:~# sfdisk -d /dev/sdb > /media/usbdisk/parttable.txt
Nu moeten we alleen nog de boot sector backupen van de disk en de rescue image en de rescue utility van dell backupen. dit kan eenvoudig met dd omdat we wegschrijven op een FAT32 file systeem kunnen files niet groter worden als 2GB voor de image partition gebruiken we dus compressie zodat hij kleiner blijft als 2GB de rest doen we uncompressed om de verschillen de laten zien. Zoals je kon zijn in de fdisk output zijn de te backupen partities /dev/sda1 en /dev/sda3 de boot sector komt van /dev/sda
backup de bootsector. deze zit aan het begin van de disk op de eerste 512 blocks
root@ubuntu:~# dd if=/dev/sda of=/media/usbdisk/bootsecoter.img bs=512 count=1
ALs dat gelukt is backupen we de 2 over gebleven partities.
root@ubuntu:~# dd if=/dev/sda1 of=/media/usbdisk/rescueutil.img 160587+0 records in 160587+0 records out 82220544 bytes (82 MB) copied, 3.12502 s, 26.3 MB/s root@ubuntu:~# dd if=/dev/sda3 | gzip > /media/usbdisk/rescueimg.img 6297480+0 records in 6297480+0 records out 3224309760 bytes (3.2 GB) copied, 299.302 s, 10.8 MB/s
we hebben nu 3 img bestanden.
Stap 2 afsluiten en disk verwisselen
sluit de computer af en vervang de interne disk. en start alles weer op van de live cd.
Stap 3 terug zetten van de images
De nieuwe disk zit nu in het systeem, en de usb schijf hebben we ook weer gekoppeld. een fisk -l zal ongeveer de volgende output geven.
root@ubuntu:~# fdisk -l Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sda doesn't contain a valid partition table Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x469d60df Device Boot Start End Blocks Id System /dev/sdb1 1 121601 976760001 c W95 FAT32 (LBA)
de externe disk zal wel weer automatisch gemount zijn anders met de hand doen.
Als eerste gaan we nu de partition table terug zetten op de nieuwe disk. wederom met sfdisk.
root@ubuntu:~# sfdisk /dev/sda < /media/usbdisk/parttable.txt Checking that no-one is using this disk right now ... OK Disk /dev/sda: 19457 cylinders, 255 heads, 63 sectors/track sfdisk: ERROR: sector 0 does not have an msdos signature /dev/sda: unrecognized partition table type Old situation: No partitions found New situation: Units = sectors of 512 bytes, counting from 0 Device Boot Start End #sectors Id System /dev/sda1 63 160649 160587 de Dell Utility /dev/sda2 * 160650 107940734 107780085 7 HPFS/NTFS /dev/sda3 107956800 114254279 6297480 db CP/M / CTOS / ... /dev/sda4 0 - 0 0 Empty Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)
als dat gebeurt is kunnen we de images terug zetten.
root@ubuntu:~# dd if=/media/usbdisk/rescueutil.img of=/dev/sda1 160587+0 records in 160587+0 records out 82220544 bytes (82 MB) copied, 3.12502 s, 26.3 MB/s root@ubuntu:~# gzip -dc /media/usbdisk/rescueimg.img | dd if=/dev/sda3 6297480+0 records in 6297480+0 records out 3224309760 bytes (3.2 GB) copied, 299.302 s, 10.8 MB/s
Als dat gelukt is alleen de bootsector nog.
root@ubuntu:~# dd if=/media/usbdisk/bootsecoter.img of=/dev/sda bs=512 count=1
Alles is nu terug gezet we kunnen dus het systeem rebooten en de proberen te booten van de harddisk. Om bij de DELL laptop in de herstel modes te komen druk je tijdens het booten op crtl-F11 volg daarna de instructies op het scherm.
Extra Informatie
Tot slot nog extra info. Als je Windows weer geboot hebt kan je daarna de extra ruimte op je disk partitioneren en gebruiken of de huidige vergroten. misschien een nog beter tip maak je systeem dual boot en ga met Linux werken. 🙂
Je kan bovengenoemde methode ook gebruiken om disken van bestaande systemen te upgraden/vervangen maak dan nog een extra img aan van de 2de partitie. als je die op een FAT32 bestands-systeem weg schrijft zal de compressie optie alleen niet voldoende zijn. je kan dan bv ook nog het commando split gebruiken. ik geef hier ook nog eens de complete disk op het is dan niet nodig om alles appart te doen.
dd if=/dev/sda bs=1024| gzip -c | split -b 2000m - /media/usbdisk/disk-sda.img.gz
dit commando maakt files aan van bijna 2GB en ze krijgen en extra volg letters mee.
/media/usbdisk/disk-sda.img.gz.aa /media/usbdisk/disk-sda.img.gz.ab /media/usbdisk/disk-sda.img.gz.ac
Om deze img terug te zetten. doe je het volgende
cat /media/usbdisk/disk-sda.img.gz.* | gzip -dc | dd of=/dev/sda bs=1024
om de alles een beetje te versnellen heb ik er nog een blocksize aan geplakt.
Recente reacties