Vraag & Antwoord

OS Linux

Linux naar andere schijf overzetten, kan dat zomaar?

10 antwoorden
  • Hoi Iedereen, Ik heb op dit moment een installatie van Red Hat 7.3 op een 4GB harddisk. Deze schijf wil ik echter vervangen door een 2GB harde schijf, en de installatie van de 4GB schijf overzetten naar de 2GB schijf. In Windows weet ik hoe dat moet, maar onder Linux nog nooit gedaan. Kan dit zomaar? Of kom ik dan problemen tegen? En hoe kan ik dat het beste aanpakken? Cheers, LibraOne
  • Ja dat kan "zomaar" Maar je bootmanager moet je ff opnieuw installeren ( /sbin/lilo ) dus je moet even een bootdisk maken of lilo ff naar diskette schrijven voor je aan je operatie begint. Je kunt het best zorgen voor dezelfde schijf indeling als je 4gib. schijf. Wat je dus doet is de 2 gig indelen, formateren, mounten (bijv. /mnt/boot/,/mnt/root/ daarna kopieer je gewoon alles naar de gemounte partitie's. Zelf gebruik ik voor dit soort acties altijd ff de bootcd van SuSE maar je kunt het natuurlijk ook met een minilinux doen of met Knoppix. Dan ben je helemaal snel klaar omdat dan alles te kopieren is en je geen gezeur krijg met files die gebruikt worden. Succes
  • mooi, ik wilde deze actie ook net gaan doen en had dezelfde vraag.
  • Let ook op dat je de /etc/fstab van de gekopieerde installatie goed zet, /dev/hda vs /dev/hdb enzo. Zodat de nieuwe installatie netjes zal booten enz. Vooral belangrijk als je meerdere partities gebruikte.
  • Hoi allemaal, Inmiddels ben ik bezig geweest met het overzetten van het RH 7.3 systeem van de 4gb naar 2gb schijf. Het was niet zo straight forward als ik dacht (lees: mijn linux ervaring was te weinig), ook omdat ik GRUB gebruik i.p.v. LILO. Maar uiteindelijk is het me toch gelukt met hulp van Google. Al met al heb ik er toch drie avonden werk aan gehad (uitzoekwerk meegerekend). De volgende zaken zijn van toepassing op mijn systeem: distro: Linux Red Hat 7.3 Originele schijf (die van 4GB) geformateerd met het ext3 (journaling) bestandssysteem GRUB als bootmanager maar één installatiepartitie naast de swappartitie (hdx1 en hdx2) Omdat wstolk mij vertelde dat ik de schijven zo gelijk mogelijk moest indelen is het dus belangrijk om te zorgen dat de nieuwe schijf ook ext3 en GRUB gebruikt. Verder is het belangrijk dat als je naar een kleinere schijf gaat je zorgt dat de gegevens die nu op je grotere schijf staan daadwerkelijk op je kleinere schijf passen. Dit zijn de stappen die ik heb ondernomen: Linux-op-een-flop Ik heb eerst op aanraden van wstolk een goede linux-op-een-flop gezocht. Minilinux voldeed niet zo omdat de gebruikte kernel een beetje oud was en geen ext3 ondersteunde. In plaats daarvan heb ik bootE gebruikt (http://boot.everywhere.dk/) met een redelijk recente kernel en ext3 ondersteuning. In het systeem had ik even geen cd-speler beschikbaar dus kon geen rescue cd van SUSE of Knoppix gebruiken. Zo'n bootE schijfje maak je door het image te downloaden en met een rawwrite applicatie (ik heb Rawwrite for Windows gebruikt) zo'n schijfje te maken. Inbouwen schijf Ik heb de 2gb schijf naast de 4gb schijf ingebouwd en juist geconfigureerd qua jumpers (4gb master, 2gb slave etc.). Booten met bootE De gemaakte bootE schijf in de diskdrive en de machine ermee booten. De meeste handelingen worden daarmee uitgevoerd. Partities en fdisk Fdisk is de applicatie waarmee je partities kan bekijken en aanmaken. Ik heb met fdisk eerst gekeken hoe de partities op de 4gb schijf er uit zagen. Fdisk start je met: [code:1:417b060cbf]fdisk /dev/hda[/code:1:417b060cbf] Door m te kiezen krijg je een menu met de commando's. Het commando p geeft een overzicht van de partitietabel. Ik kreeg de volgende info: [code:1:417b060cbf]/dev/hda1 boot 1(start) 940(end) 37900481(blocks) 83(id) linux native(system) /dev/hda2 941(start) 973(end) 133056(blocks) 83(id) linux swap(system)[/code:1:417b060cbf] Daarna berekend wat er na swap overblijft voor mijn installatiepartitie op de 2gb schijf aan cylinders en de installatiepartitie (hdb1) en swap (hdb2) met fdisk ingesteld op de 2gb schijf. met q ga je uit fdisk Daarna met [code:1:417b060cbf]fdisk /dev/hdb[/code:1:417b060cbf] de schijf ingesteld met een hdb1 met id 83 en een hdb2 met id 82 met behulp van het menu. Formateren en swap maken en instellen Met [code:1:417b060cbf]mke2fs -j /dev/hdb1[/code:1:417b060cbf] heb ik de installatiepartitie geformateerd als ext3 journaling bestandssysteem (-j staat voor journaling). Swap maken en instellen Met [code:1:417b060cbf]mkswap -c /dev/hdb2[/code:1:417b060cbf] heb ik de swap gemaakt [code:1:417b060cbf]swapon /dev/hdb2[/code:1:417b060cbf] zorgt ervoor dat de swap wordt ingesteld. Mounten Daarna moeten de filesystems van beide schijven worden gemount zodat er bestandsoverdracht mogelijk wordt. Eerst de 4GB (originele) schijf mounten: Zorg eerst dat je in /mnt van bootE (dus niet van je harde schijf!) een hda1 directory is aangemaakt als die er nog niet is. Als die er nog niet is dan doe je: [code:1:417b060cbf]mkdir /mnt/hda1[/code:1:417b060cbf] Nu het mounten van de schijf [code:1:417b060cbf]mount -r -t ext3 /dev/hda1 /mnt/hda1[/code:1:417b060cbf] De -r zorgt ervoor dat het systeem als read only wordt gemount, dat voorkomt dat je per ongeluk je originele systeem, waarop je nu niet hoeft te schrijven, stuk maakt. Het is namelijk handig om je originele schijf te behouden totdat je succesvol bent geboot op de nieuwe schijf, daarom zijn we er nog even voorzichtig mee. Daarna de 2GB schijf mounten: Zorg eerst dat je in /mnt van bootE (dus niet van je harde schijf!) een hdb1 directory is aangemaakt als die er nog niet is. Als die er nog niet is dan doe je: [code:1:417b060cbf]mkdir /mnt/hdb1[/code:1:417b060cbf] Nu het mounten van de schijf [code:1:417b060cbf]mount -t ext3 /dev/hdb1 /mnt/hdb1[/code:1:417b060cbf] Let op dat de -r hier niet bij staat want we willen tenslotte de bestanden van hda1 naar hdb1 schrijven. Kopieren van alles Nu kan het kopieerfeest beginnen. Daar heb ik het commando cp voor het kopieren voor gebruikt. Het schijnt ook met dd te kunnen maar heb dit niet uitgezocht. Omdat bootE niet de gebruikelijke cp kent van volledige distro's maar de cp van Busybox gebruikt (een soort kleine commandolibrary die gemakkelijk op een flop past) zijn de gebruikte argumenten op een punt wat anders: Normaal zou je om alles te kopieren van hda1 naar hdb1 dit gebruiken (let op, hoofletter ook werkelijk overtypen!): [code:1:417b060cbf]cp -i -p -R -H /mnt/hda1/* /mnt/hdb1[/code:1:417b060cbf] Echter Busybox kent het argument -H niet om symbolic links ook mee te nemen. Dit werkt afdoende voor Busybox (let op, hoofletters ook werkelijk overtypen!): [code:1:417b060cbf]cp -i -p -R -d /mnt/hda1/* /mnt/hdb1[/code:1:417b060cbf] Alle bestanden (mits geen errors) zijn succesvol gekopieerd. Vervolgens reboot je je machine zonder de diskette naar je 4gb schijf om een GRUB bootdisk te maken. GRUB bootdisk Zorg dat je onder root op de prompt komt. Zorg dat je een lege diskette hebt of een die je kan overschrijven en doe: [code:1:417b060cbf]mke2fs /dev/fd0[/code:1:417b060cbf] om de flop te formateren. Om verder te gaan moet de flop gemount worden. Zorg dat in /mnt een floppy directory staat als die er nog niet is: [code:1:417b060cbf]mount /dev/fd0 /mnt/floppy[/code:1:417b060cbf] Nu moeten we directories en bestanden op die flop aanmaken. We maken hiervoor gebruik van bestanden op de 4gb schijf: [code:1:417b060cbf]mkdir /mnt/floppy/boot mkdir /mnt/floppy/boot/grub cp /usr/share/grub/i386-redhat/stage1 /mnt/floppy/boot/grub cp /usr/share/grub/i386-redhat/stage2 /mnt/floppy/boot/grub[/code:1:417b060cbf] Voor andere systemen kunnen de laatste twee commando's anders zijn, namelijk: [code:1:417b060cbf]cp /usr/share/grub/i386-pc/stage1 /mnt/floppy/boot/grub cp /usr/share/grub/i386-pc/stage2 /mnt/floppy/boot/grub[/code:1:417b060cbf] Nu moet GRUB op de harde schijf worden gestart om de GRUB bootfloppy af te maken. Op Red Hat kan je die vinden onder /sbin, op andere systemen onder /usr/sbin. Ga naar de directory die van toepassing is en type: [code:1:417b060cbf]grub[/code:1:417b060cbf] Dan kom je in de GRUB console. Daar type je: [code:1:417b060cbf]grub> root (fd0) grub> setup (fd0) grub> quit[/code:1:417b060cbf] De bootflop is klaar. De 4gb schijf ontkoppelen Sluit nu het systeem af (halt of shutdown -h now). Ontkoppel de 4gb schijf en zorg dat je de 2gb schijf zo instelt qua jumper dat er vanaf die schijf wordt opgestart. GRUB instellen op de 2gb schijf Doe nu de GRUB bootflop er weer in en boot met die flop. Je komt dan na opstarten automatisch in de GRUB console. Type daar: [code:1:417b060cbf]grub> root (hd0,4) grub> setup (hd0) grub> reboot[/code:1:417b060cbf] Nu zal je systeem opnieuw starten, haal de floppy eruit want je gaat nu vanaf de 2gb schijf starten. GRUB zal succesvol starten (gebruikt gewoon de instellingen in /boot/grub/ die je al netjes had gekopieerd). Maar toch ben je er nog niet want dan opeens krijg je de melding: [code:1:417b060cbf]Couldn't find matching filesystem: LABEL=/[/code:1:417b060cbf] Het filesystem moet nog verteld worden welk label het heeft, want nu is het label leeg. Gelukkig kom je na opgeven van je rootwachtwoord in een rescue modus. Type daar in: [code:1:417b060cbf]/sbin/e2label /dev/hda1 /[/code:1:417b060cbf] Type daarna in: [code:1:417b060cbf]exit[/code:1:417b060cbf] Het systeem zal opnieuw booten en daarna zal het systeem als het goed is helemaal goed opstarten. Cheers,
  • Zet dat maar in de faq! :)
  • Okay, de FAQ bekeken. Ik zal contact opnemen met Maximiliaan of hij het goed genoeg vindt om daar te plaatsen.
  • Heel mooi :D In de FAQ ermee :lol:
  • Is het niet makkelijker om gewoon[code:1:8a082727fe]dd if=/dev/hdx# of=/dev/hdy* bs=[grootte van kleine hd][/code:1:8a082727fe]te gebruiken en dan je lilo aan te passen???
  • Bedankt voor de tip, maar zoals ik hierboven al schreef: [quote:1298415d57]Het schijnt ook met dd te kunnen maar heb dit niet uitgezocht.[/quote:1298415d57] Overigens ging het om GRUB en niet om LILO. Heb je het wel gelezen? :roll: :D

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.