PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Festplatte spiegeln unter Linux



an01523
31.08.04, 21:44
Hallo,

mein Bruder hat auf unserem Server (ASUS P3B-F, 1200 MHz PIII, 768MB SDRAM) seinerzeit mal ein Debian installiert. Momentan ist er nicht da, ich möchte jedoch die Festplatte auswechseln da die jetztige Maxtor 120GB zu laut ist. Hab mal mit Norton Ghost versucht die Festplatte 1:1 auf eine neue SAMSUNG 120GB zu spiegeln...
Funktioniert irgendwie nicht: beim Booten da wo LILO sich melden müsste bekomme ich folgende Meldung: LI9999 99999 99999 99999 99999 99999
Die neue Festplatte habe ich auch auf Primary/Master angeschlossen, so wie die alte früher.

Nun, gibt es evtl. native Linux-Tools die ein 1:1 HDD kopieren ermöglichen? Wenn's geht würde ich gleich die 120GB Platte auf eine 160GB Platte kopieren. Weiss jedoch nicht wie es mit LBA48 Unterstützung bei Debian-Linux ausschaut... ???

Hab übrigens auch nach dem Kopieren mit Norton Ghost versucht mit Knoppix zu booten, um LILO auszuführen. Habs leider nicht geschafft, da ich mich fast gar nicht mit Linux auskenne. Als ich "lilo" ausführen wollte kam eine Fehlermeldung ich soll etc/lilo.conf erstmal editieren, ging aber nicht weil alles als read-only ist.

Ich möchte nun versuchen die zweite Festplatte in Linux-Rechner einzubauen und unter Linux die Daten zu kopieren:
a) erkennt Debian-Linux die zweite HDD automatisch oder muss ich irgendwas einstellen?
b) wie kann ich nachschauen ob die Festplatte erkannt worden ist, und wie gross diese ist
c) wenn die zweite Platte erkannt worden ist, kann ich dann einfach mit "dd" die 120GB Platte auf eine 160GB Platte kopieren? Soweit ich sehe habe ich hda1 bis hda7 auf der Platte. Obwohl hda2, hda3, hda4, hda5 sich nicht mounten lassen. Unter Windows werden mir nur 4 Partitionen angezeigt (Boot, Swap, eine 3GB Partition, und eine 110GB Partition).
d) was passiert mit der letzten 110GB Partition? Kann ich diese auf der 160GB Platte vergrössern (ohne die Daten da drauf zu löschen)?

corresponder
01.09.04, 10:32
dd

ist dein freund, einfach mal

man dd

in eine konsole deiner wahl...


gruss

c.

atomical
01.09.04, 12:16
aus Knoppix heraus auf der Konsole...

wenn /dev/hda die alte Platte mit dem System und /dev/hdb die neue, leere Platte ist ...

dd if=/dev/hda of=/dev/hdb

... um Lilo nachzuinstallieren musst du ihm schon sagen, welche Konfiguration er nehmen soll - standardmäßg liegt die in /etc - die die du brauchst wird aber unter /mnt/hda*/etc liegen (wenn du /mnt/hda* (Zahl!!) gemountet hast) ... eventuell hilft auch hier die Manpage.

mdkuser
01.09.04, 12:33
Nein, nicht mit dd wenn die Größe der Quell- und Zielplatte unterschiedlich ist!!!

Dann so vorgehen:


1. Rechner mit Knoppix-CD booten,
2. auf Zielplatte mit fdisk, parted oder qtparted die Partitionen anlegen und Filesystem erzeugen
3. Quellpartition nach /mnt/old_hdd mounten
4. Zielpartition nach /mnt/new_hdd mounten
5. Partition mit Tar kopieren



cd /mnt/old_hdd && tar -cpvf - . --exclude=/proc -exclude=/mnt | tar -C /mnt/new_hdd -xpvf -


6. auf Zielpartition leeres /mnt und leeres /proc Verzeichnis anlegen
7. fstab auf der Zielpartition anpassen
8. Bootloader-Konfig (/mnt/new_hdd/etc/lilo.conf oder /mnt/new_hdd/boot/grub/grub.conf) auf der Zielpartition anpassen
9. Bootloader in den MBR installieren (z.B. lilo -C /mnt/new_hdd/etc/lilo.conf)

Man kann übrigens auch übers Netzwerk ein System auf ein anderes klonen.
siehe dazu:

http://www.linuxforen.de/forums/showthread.php?t=149848&highlight=netcat

atomical
01.09.04, 12:47
Ein Ausrufezeichen reicht.

Im ersten Abschnitt geht es um zwei gleich große Platten - außerdem wüßte ich nicht, was da so einseinself gefährlich sein soll, wenn die Zielplatte größer ist ... außer vielleicht, das der Bootloader neu geschrieben werden muss.

mdkuser
01.09.04, 13:02
@atomical

hey, sorry ging nicht gegen dich persönlich. Niemand stellt dein Wissen in Frage!
Nur wird allgemein nicht empfohlen, mit dd zu klonen wenn die Plattengröße nicht identisch ist. Kannst du hier im Forum auch nachlesen.
Man könnte auch das System mit cd /mnt/old_hdd && cp -ax . /mnt/new_hdd kopieren, funzt auch, ist aber ebenfalls nicht empfehlenswert.
Für einen Anfänger sollte man deshalb eine weniger riskante Methode vorschlagen. Ausserdem ist in dem posting von an01523 die Rede davon, dass er von einer 120 Gb auf ein 160 GB Platte kopieren will.

an01523
02.09.04, 02:02
erstmal danke für die Antworten!

Habe jetzt die 4 Partitionen auf die neue 160GB kopiert, aber er startet von der neuen Platte nicht. Fehlermeldung: fatal: First Sector of /dev/hda1 doesn't have a valid boot signature. Aktive Partition ist hda1.

Ihr schreibt immer ich soll die /etc/fstab und /etc/lilo.conf anpassen! Was soll ich da anpassen wenn die neue Festplatte die gleichen Partitionen hat? Ausser die letzte 4. Partition ist nun etwas grösser (weil früher 120GB und jetzt 160GB).

Ich habe wieder mit knoppix versucht lilo auszuführen um den Bootsector(MBR?) neu zu schreiben, kein Erfolg. Wenn ich "lilo -C /mnt/hda6/etc/lilo.conf" eintippe, dann meckert er etwas von wegen /boot kann nicht geschrieben werden oder so. Wenn ich noch zusätzlich "-b /dev/hda" angebe, dann kommt ne andere Fehlermeldung. Und wenn ich noch zusätzlich "-r /mnt/hda6" angebe dann meint er die Datei /mnt/hda6/etc/lilo.conf nicht finden zu können, obwohl die da ist (kann man mit Editor öffnen).

Weiss nicht was ich sonst tun kann, unter DOS/Windows hatte ich solche Probs nie... Einfach Boot-Partition 1:1 kopiert und fertig.

Hier mal meine fstab:

# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/hda6 / ext3 errors=remount-ro 0 1
/dev/hda5 none swap sw 0 0
proc /proc proc defaults 0 0
/dev/fd0 /floppy auto user,noauto 0 0
/dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
/dev/hda1 /boot ext3 defaults 0 2
/dev/hda7 /data ext3 defaults 0 2

und hier die lilo.conf:

# /etc/lilo.conf - See: `lilo(8)' and `lilo.conf(5)',
# --------------- `install-mbr(8)', `/usr/share/doc/lilo/',
# and `/usr/share/doc/mbr/'.

# +---------------------------------------------------------------+
# | !! Reminder !! |
# | |
# | Don't forget to run `lilo' after you make changes to this |
# | conffile, `/boot/bootmess.txt', or install a new kernel. The |
# | computer will most likely fail to boot if a kernel-image |
# | post-install script or you don't remember to run `lilo'. |
# | |
# +---------------------------------------------------------------+

# Support LBA for large hard disks.
#
lba32

# Overrides the default mapping between harddisk names and the BIOS'
# harddisk order. Use with caution.
#disk=/dev/hde
# bios=0x81

#disk=/dev/sda
# bios=0x80

# Specifies the boot device. This is where Lilo installs its boot
# block. It can be either a partition, or the raw device, in which
# case it installs in the MBR, and will overwrite the current MBR.
#
boot=/dev/hda

# Specifies the device that should be mounted as root. (`/')
#
root=/dev/hda6

# Enable map compaction:
# Tries to merge read requests for adjacent sectors into a single
# read request. This drastically reduces load time and keeps the
# map smaller. Using `compact' is especially recommended when
# booting from a floppy disk. It is disabled here by default
# because it doesn't always work.
#
# compact

# Installs the specified file as the new boot sector
# You have the choice between: bmp, compat, menu and text
# Look in /boot/ and in lilo.conf(5) manpage for details
#
install=/boot/boot-menu.b

# Specifies the location of the map file
#
map=/boot/map

# You can set a password here, and uncomment the `restricted' lines
# in the image definitions below to make it so that a password must
# be typed to boot anything but a default configuration. If a
# command line is given, other than one specified by an `append'
# statement in `lilo.conf', the password will be required, but a
# standard default boot will not require one.
#
# This will, for instance, prevent anyone with access to the
# console from booting with something like `Linux init=/bin/sh',
# and thus becoming `root' without proper authorization.
#
# Note that if you really need this type of security, you will
# likely also want to use `install-mbr' to reconfigure the MBR
# program, as well as set up your BIOS to disallow booting from
# removable disk or CD-ROM, then put a password on getting into the
# BIOS configuration as well. Please RTFM `install-mbr(8)'.
#
# password=tatercounter2000

# Specifies the number of deciseconds (0.1 seconds) LILO should
# wait before booting the first image.
#
delay=20

# You can put a customized boot message up if you like. If you use
# `prompt', and this computer may need to reboot unattended, you
# must specify a `timeout', or it will sit there forever waiting
# for a keypress. `single-key' goes with the `alias' lines in the
# `image' configurations below. eg: You can press `1' to boot
# `Linux', `2' to boot `LinuxOLD', if you uncomment the `alias'.
#
# message=/boot/bootmess.txt
# prompt
# single-key
# delay=100
# timeout=100

# Specifies the VGA text mode at boot time. (normal, extended, ask, <mode>)
#
# vga=ask
# vga=9
#
vga=normal

# Kernel command line options that apply to all installed images go
# here. See: The `boot-prompt-HOWO' and `kernel-parameters.txt' in
# the Linux kernel `Documentation' directory.
#
# append=""

# Boot up Linux by default.
#
default=Linux

image=/boot/vmlinuz-2.4.24
label=Linux
read-only
alias=1

image=/boot/vmlinuz-2.4.20
label=LinuxOld
read-only
optional
alias=2

# If you have another OS on this machine to boot, you can uncomment the
# following lines, changing the device name on the `other' line to
# where your other OS' partition is.
#
# other=/dev/hda4
# label=HURD
# restricted
# alias=3

Ich habe jetzt die neue Platte parallel angeschlossen (hdb). Habe diese nach hdb1, hdb6, hdb7 gemountet. Und kann deren Inhalt sehen. Wie soll ich nun weiter vorgehen um die neue Platte noch bootfähig zu machen?

derJoe
02.09.04, 03:28
Du kannst doch in Knoppix die Partitions hda6 und hda1 mounten, z.B. nach /mnt/hda6 bzw. /mnt/hda6/boot. Dann machst du mit root-Rechten "chroot /mnt/hda6 /bin/bash". Jetzt hast du eine Shell mit deiner hda6 als Root-Partition. Wenn du jetzt ein "lilo -v" ausführst, sollte es funktionieren.

Gruß

derJoe

edit: hattest du, als du lilo ausgeführt hast, /dev/hda1 auf /mnt/hda6/boot gemountet?

an01523
02.09.04, 04:47
nun ist es geschafft!
Das Problem war das ich den MBR/Bootloader nicht auf die neue Platte schreiben konnte, weil unter Knoppix (gestartet mit "knoppix 2") anscheinend nicht genügent Rechte sind und auch wenn ich von hda gebootet habe konnte ich kein MBR auf hdb schreiben.

Habe jetzt nur die neue Platte einbaut und mit Knoppix von CD gebootet (in Konsolen-Modus). Dann einfach "umount /boot" obwohl er dann schreibt dass in /boot eh nichts gemountet ist. Danach "mount /dev/hda1 /boot" und nun konnte man plötzlich "lilo /mnt/hda6/etc/lilo.conf" ausführen. Vorher hat er immer gemeckert dass /boot Read-Only ist und so.

Jetzt bootet er von der neuen Platte!

Allerding habe ich vorher meine alte Platte zerschossen, und war extrem verzweifelt da ich nun keine funktionierende Platte hatte und somit nicht mal ins Internet konnte um Hilfe zu holen ;)
Habe nämlich bei Heise.de ( http://www.heise.de/ct/03/08/184/default.shtml ) gelesen dass wenn Linux nicht bootet man in lilo.conf die Zeile ”boot=/dev/hdb“ nach ”boot=/dev/hda“ ändern soll. Und dann lilo ausführen, damit LILO in den MBR auf hda installiert wird. Habe ich auch gleich versucht, mit der alten Platte hda gebootet, lilo.conf angepasst damit LILO auf die neue Platte hdb installiert wird ”boot=/dev/hdb“, und lilo ausgeführt. Nach Neustart ging weder die alte noch die neue Platte... Obwohl er eigentlich auf hda ja nichts verändern sollte da boot=...hdb

Irgendwie checke ich das mit LILO noch nicht ganz. Unter Windows (2K und XP) gibt es ja die BOOT.INI was so ungefähr der lilo.conf entspricht. Der Bootloader wird immer von der Aktiven Partition gestartet, und schaut dann in der boot.ini nach was da für Partitionen eingetragen sind. Man kann auch den ersten Sektor (512 Byte) von einer Partition in eine Datei schreiben, und diese in die boot.ini eintragen.

Bei Lilo ist alles irgendwie unübersichtlich, da gibt es IMAGE=, OTHER=, ... kann man jetzt für seine zweite Linux-Installation auf einer anderen Platte OTHER=... hernehmen oder muss man IMAGE=... nehmen? Wozu will LILO unbedingt nach /BOOT schreiben? Was ist wenn man keine eigene Bootpartition hat die nach /BOOT gemountet ist, sondern nur eine einzige Partition auf der Platte? Muss man diese dann nach / mounten und gleichzeitig nach /BOOT ?
Und mit Knoppix einfach mal den MBR neu zu schreiben (mit Lilo) ist ja mehr als umständlich und unverständlich! Habe im Netz auch viele Sachen dazu gefunden die bei manchen funktionieren und bei manchen nicht. Einer hat mal geschrieben er hat mit SU geschafft lilo auszuführen, c't schreibt mit SUDO SU geht es - nun ja bei mir ging beides nicht! Ich brauchte gar kein SU, einfach wie geschrieben die Bootpartition nach /BOOT gemountet und plötlich hatte ich alle Rechte um lilo auszuführen.

HEMIcuda
02.09.04, 06:04
--
NO VIA - NO CRY
Au wadde, voll disqualifiziert.

'cuda

mdkuser
02.09.04, 07:32
Vielleicht klappte das bei Knoppix nicht, weil du a) nicht /mnt/hda? chrooted hast und b) auf /mnt/hda? Screibrechte fehlten oder die auf nicht ausführbar gesetzt war. Mit Knoppix 3.2 klappte das zugegebenermaßen noch einfacher.

P.S. wenn dir lilo zu umständlich ist, schau dir mal grub an, den installierest du einmal in den mbr und musst dann nur noch die grub.conf anpassen, alle Änderungen die in grub.conf vorgenommen werden übernimmt grub dann automatisch.

an01523
02.09.04, 14:40
ich habe auch mit Knoppix 3.2 gearbeitet. Wie gesagt: solange ich unter Knoppix meine Boot-Partition (hda1) nicht nach /BOOT mounte, funktioniert lilo nicht bzw meckert dass er auf /BOOT nicht schreiben kann.

Weiss du wie lilo genau funktioniert? Kann ich wenn ich von einer Festplatte (z.b. hda) gebootet habe auf eine andere (z.B. hdb) den MBR schreiben? Bei mir hat es nicht geklappt. Lilo hat beide MBR zerstört. Wozu dient die Zeile "boot=" in lilo.conf? aus man lilo und man lilo.conf werde ich einfach nicht schlau, besser wären konkrete Beispiele gewesen.

mdkuser
02.09.04, 14:57
In der Zeile boot in der lilo.conf gibt man an wohin der Bootmanager lilo installiert werden soll.

boot=/dev/hda bedeutet, Lilo wird in den MBR des Primary Master installiert

boot=/dev/hdb bedeutet, Lilo wird in den MBR des Primary Slave installiert


boot=/dev/hda1 bedeutet, Lilo wird in den Bootsector der ersten Primären Partition installiert

usw...

Installiert wird lilo mit dem Befehl lilo, wohin lilo installiert wird definierst du vorher in der lilo.conf.


Lilo ist gar nicht so kompliziert, lies dich mal etwas in die Thematik ein, es gibt für lilo sehr gute Howtos.

z.B googeln nach lilo brachte diese Ergebnisse:

http://www.linuxhaven.de/dlhp/HOWTO/mini/DE-LILO-HOWTO-1.html
http://www.tldp.org/HOWTO/LILO.html

an01523
02.09.04, 17:30
hört sich ja alles gut an, leider funtz es nicht so wie es soll - und zerschiesst den MBR statt den neu zu schreiben. Ich habe ja von hda gebootet, hab die lilo.conf angepasst (Zeile boot=/dev/hdb eingetragen) und lilo ausgeführt. Mit dem Ergebnis das weder hda noch hdb danach bootete. Keiner weiss was, wohin und warum lilo da kopiert/geschrieben hatte. Wenn boot=/dev/hdb in der Config steht, wieso rührt er dann die hda an?

Edit:
habe mich jetzt mal an einer Diskette versucht. Lilo schreibt zwar etwas auf die Diskette, aber diese ist trotzdem nicht bootbar. Mein vorgehen:
habe meine lilo.conf nach lilo.flop kopiert. In der lilo.flop habe ich die Zeile "boot=/dev/fd0" eingetragen. Danach "lilo -C /etc/lilo.flop" in der Konsole ausgeführt. Lilo hat etwas auf die Diskette geschrieben... Schnell neugestartet, von der Floppy kann nicht gebootet werden! Was mache ich den da falsch?

mdkuser
03.09.04, 08:56
Du musst natürlich auch den pfad für das Kernelimage anpassen. Sorry, aber du solltest erstmal die Howtos, die ich gepostet habe genau durchlesen und versuchen zu verstehen, welcher Eintrag was genau bewirkt. Dann schreibst du mal, was du wie gemacht hast (aber ausführlich) und welcher Effekt dann auftrat und dann kann dir auch jemand Hilfestellung dazu geben geben.

an01523
03.09.04, 16:09
das Problem bei den HowTo's ist dass die Leute die das schreiben sich auskennen, und deswegen sehr ungenaue und zweideutige Aussagen machen die für den Anfänger nicht verständlich sind...

Zum Beispiel interessiert mich wie ich von einer laufenden Linux-Installation auf eine andere Platte Linux installiere, und dann nur von der anderen Platte booten kann:
http://www.linuxhaven.de/dlhp/HOWTO/mini/DE-LILO-HOWTO-4.html

da steht aber folgendes:

Die Datei lilo.conf,die ich dafür benutze, sieht wie folgt aus:

# Dieses File muß von einem Sys. benutzt werden, welches von
# /dev/hdc läuftwas hat das nun zu bedeuten? Dass man das Linux doch von hdc booten muss?

Es geht dann gleich weiter:

image = /boot/vmlinux # Pfad des Kernels auf der Root-Partition /dev/hdc1
root = /dev/hda1 # hdc1 wird beim Booten hda1- wo kommt jetzt plötzlich hdc1 her (siehe Kommentar)?
- und wieso war gerade die Root-Partition /dev/hdc1, und nun steht plötzlich root = /dev/hda1 ?
- am unverständlichsten ist die Aussage: hdc1 wird hda1

mdkuser
03.09.04, 16:21
gehen wir das mal systematisch durch:



# Dieses File muß von einem Sys. benutzt werden, welches von
# /dev/hdc läuft
was hat das nun zu bedeuten? Dass man das Linux doch von hdc booten muss?


Nei, das heisst, das in diesem Beispiel lilo in den MBR von hdc geschrieben wurde , man muss eben seine config auf die Gegebenheiten des Eigenen Rechners anpassen.


Es geht dann gleich weiter:
Zitat:
image = /boot/vmlinux # Pfad des Kernels auf der Root-Partition /dev/hdc1

Dies gibt die Partition/den Ort an wo sich das Kernel-Image befindet
wo das liegt hängt davon ab wohin in welche Partition du /boot mountest


root = /dev/hda1 # hdc1 wird beim Booten hda1

Dies gibt an auf welcher Partition das Root-Verzeichnis gemountet ist.

Du muss dich mal mit dem Linux Dateisystem beschäftigen, dann erklärt sich alles.

In diesem beispiel hat jemand keine boot-partition angelegt sondern /boot auf die root Partition gemountet. Dort liegt das kernel-image, das muss er angeben, damit lilo weis, welcher kernel und von wo gebootet werden soll (parameter: image=).

Ausserdem muss lilo wissen, auf welche Partition es das rootverzeichnis mounten soll, das erledigt der eintrag root=.

Schliesslich musst lilo mitgeteilt wrden wohin sich der bootmanager installieren soll, das gibt der parameter boot= an.

In deinem Fall insalliere Lilo in den MBR von hda wenn dein bios von hda bootet.
Falls Du dann keine boot-partition hast ist bei image der ablosute pfad zum Kernel-image und bei root dann das device anzugeben wo die root partition sich befindet in diesem Fall also hdb1 (falls es auf der ersten partition von primary slave ist, oder hda5 falls es auf der ersten erweiterten Partition vom primary master ist usw...

pibi
03.09.04, 18:54
Auweia! Jetzt werde ich erst auf diesen Thread aufmerksam, nachdem schon fast alles gegessen ist;-)

Eigentlich ist das "Zuegeln" einer Installation auf eine andere Festplatte gleicher Bauart (zB. IDE nach IDE) eine recht einfache Sache, wenn man ein paar Dinge beachtet (siehe dazu auch meine Signatur). Allerdings braucht man dazu ein gewisses Mass an Know-How bzw. die Bereitschaft, sich selbiges anzueignen.


das Problem bei den HowTo's ist dass die Leute die das schreiben sich auskennen, und deswegen sehr ungenaue und zweideutige Aussagen machen die für den Anfänger nicht verständlich sind...
Das ist nur bedingt richtig. Die Leute, die so was schreiben, muessen sich logischerweise auskennen. Sonst koenntest Du ja ein solchiges How-To schreiben;-) Vielfach ist es auch nicht ganz einfach, etwas in Worten zu beschreiben, was entweder bei jedem System anders ist oder von diversen aeusseren Faktoren (AKA Systemgegebenheiten, Distributionen etc.) abhaengt.

Noch ein Tip zum Bootloader: Ich wuerde dringend einen Wechsel von LILO zu grub empfehlen. Grub ist wesentlich maechtiger und hat deutlich weniger Einschraenkungen als LILO. Und: Grub muss nicht nach jeder Konfigurationsaenderung neu geschrieben werden, wie jemand hier bereits erwaehnt hat. Zudem gibt es einen interaktiven Modus, wo man "mal eben schnell" andere Bootparameter ausprobieren kann oder allfaellige Tippfehler korrigieren kann.

Gruss Pit.

mdkuser
04.09.04, 12:07
Ein Wechsel zu Grub wird auch nicht einfacher, wenn man das System, nachdem Linux die Partitionen bezeichnet nicht verstanden hat.
Im Gegenteil, dadurch dass bei Grub hda1 als hd00 bezeichnet wird kommt ein Anfänger noch mehr durcheinander, denn gemountet wird diese Partition ja als /dev/hda1.

Zugegeben, Grub hat einige Votreile gegenüber Lilo, aber das Problem das an01523 mit lilo hat, hätte er auch wenn er grub benutzen würde.

mdkuser
04.09.04, 12:14
So müsste deine lilo.conf aussehen, wenn du Linux auf der Partition /hda6 installiert hast, keine bootpartition angelegt ist und dein Bios von hda bootet:



boot=/dev/hda
root=/dev/hda6
install=/boot/boot-menu.b
map=/boot/map
delay=20
vga=normal
default=Linux

image=/boot/vmlinuz-2.4.24
label=Linux
read-only
alias=1

image=/boot/vmlinuz-2.4.20
label=LinuxOld
read-only
optional
alias=2


Alles klar jetzt?