PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dualboot Linux via USB HDD Bootdateien auf interne HDD Wie?



orns
16.03.08, 03:02
Hallo,

mein Problem wurde hier in ähnlicher Form schon zig mal behandelt aber trotzdem finde ich einfach keine passende Lösung, da es etwas speziell ist und ich absoluter Linux Beginner bin. Ich habe auf meinem Notebook intern Win XP Pro installiert und auf einer externen Festplatte SCSI läuft via USB Debian Etch. Über den Bootloader grub kann ich bei angeschlossener HDD zwischen beiden Betriebsystemen wählen. Ist sie allerdings nicht angeschlossen erscheint natürlich Error 21 was ich gerne ändern würde. Das heißt ich will auch bei nicht angeschlossener externer HDD booten können (Win XP). Ich würde also gerne die Bootdateien /boot auf die interne Festplatte installieren, damit Grub immer darauf Zugriff hat. Leider kann mein BIOS nicht extra über USB Booten, so dass die Treiber vorher initialisiert werden müssen und mir nur diese Lösung einfällt. Linux komplett soll nicht intern installiert werden. Könnte ich die boot Dateien auf NTFS "installieren" (zugriff momentan über ntfs-3g), oder muss ich extra eine kleine Bootpartition auf hda1 anlegen? Wie bekomme ich die Bootdateien von Grub auf die interne Festplatte?

Mein Ansatz gründete hierrauf: http://www.detlefhahn.de/linux/grub/grub.php
aber ich habs nicht geschafft im grub prompt hd0,0 (--> hda1) zu mounten. Durch mein automount in /etc/fstab bekomme ich aber eine Verbindung wenn ich will (derzeit deaktiviert).

Hier nochmal meine Konfigurationen dazu:
Bei der Installation hat sich grub in den MBR der primären HDD (hda1) geschrieben.

fdisk -l ist noch ziemlich XP-lastig aber ich fange ja gerade erst an!

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 5129 41198661 7 HPFS/NTFS
/dev/hda2 5130 7296 17406427+ f W95 Ext'd (LBA)
/dev/hda5 5130 7296 17406396 7 HPFS/NTFS

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 3465 27832581 83 Linux
/dev/sda2 3826 7650 30724312+ 7 HPFS/NTFS
/dev/sda3 7651 60801 426935407+ f W95 Ext'd (LBA)
/dev/sda4 3466 3825 2891700 82 Linux swap / Solaris
/dev/sda5 7651 10200 20482843+ 7 HPFS/NTFS
/dev/sda6 10201 21674 92164873+ 7 HPFS/NTFS
/dev/sda7 21675 39522 143364028+ 7 HPFS/NTFS
/dev/sda8 39523 60801 170923536 7 HPFS/NTFS

Partition table entries are not in disk order

Hier die /boot/grub/menu.lst


default 0
timeout 5
color cyan/blue white/blue

title Debian GNU/Linux, kernel 2.6.18-6-686
root (hd1,0)
kernel /boot/vmlinuz-2.6.18-6-686 root=/dev/sda1 ro
initrd /boot/initrd.img-2.6.18-6-686
savedefault

title Debian GNU/Linux, kernel 2.6.18-6-686 (single-user mode)
root (hd1,0)
kernel /boot/vmlinuz-2.6.18-6-686 root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.18-6-686
savedefault

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda1
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1


Dann noch die device.map


(hd0) /dev/hda
(hd1) /dev/sda

Und noch /etc/fstab


# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,errors=remount-ro 0 1
/dev/sda4 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/sda1 /media/usb0 auto rw,user,noauto 0 0
/dev/sda2 /media/usb1 auto rw,user,noauto 0 0
/dev/sda4 /media/usb2 auto rw,user,noauto 0 0
/dev/sda5 /media/usb3 auto rw,user,noauto 0 0
/dev/sda6 /media/usb4 auto rw,user,noauto 0 0
/dev/sda7 /media/usb5 auto rw,user,noauto 0 0
/dev/sda8 /media/usb6 auto rw,user,noauto 0 0
#/dev/hda1 /mnt/winsystem ntfs-3g umask=0,nls=utf8 0 0
#/dev/hda5 /mnt/winsystem ntfs-3g umask=0,nls=utf8 0 0

Will euch nicht vollmüllen mit meinen Einstellungen aber lieber gleich alle nötigen Infos geben. Ich bin wirklich dankbar für jede Antwort!

Grüße
Orns

tooly
16.03.08, 08:16
Hallo,

Du kannst Linux auch mittels der boot.ini von Windows starten, siehe: http://de.opensuse.org/SDB:Linux_mit_Hilfe_des_Bootmanagers_von_Windows_N T/2000/XP_booten

mfg
tooly

meshuggah
16.03.08, 11:23
Hi Orns,

bist wohl auch ein Nachtarbeiter ;)

also ich denke Du müsstest eine Bootpartition machen. Mit NTFS-3G läuft das, was Du vorhast auf keinen Fall, da dieser Treiber über die FUSE-Schnittstelle im Userspace läuft, also einen bereits laufenden Kernel vorraussetzt.
Es müsste aber auch möglich sein mit dem Kernel-eigenen Treiber so etwas ähnliches zu bewerkstelligen... Ich meine gehört zu haben, dass es Distributionen gibt (zumindest Wubi (Ubuntu-Derivat) (http://www.wubi-installer.org/) soll das können), die sich nur unter ntfs installieren.
Wahrscheinlich benutzen die erstmal den Kernelinternen Treiber um initrd und Kernel einzulesen, und später wird dann ein remount mit NTFS-3G gemacht (also reine Mutmaßung von mir :-)

Aber erst mal brauche ich noch ein paar Infos:
Bootet der Lappi winxp, wenn die externe HD angeschlossen ist?
wann genau erscheint Deine Fehlermeldung "Error 21"?

Hab gerade nochmal nachgeschaut, "Error 21" Bedeutet laut Grub-Doc:

21 : Selected disk does not exist
This error is returned if the device part of a device- or full file name refers to a disk or BIOS device that is not present or not recognized by the BIOS in the system.

Ok, klingt logisch... Also ich würde ne neue Boot-Partition machen, aber nicht in /dev/hda1 , das ist nämlich schon ne Partition auf /dev/hda der eigentlichen Festplatte. Das hat auch den Vorteil, dass Du bei einer Neuinstallation von winxp Deinen boot-Ordner nicht verlierst!

mfg
meshuggah

orns
16.03.08, 13:01
Moinsen,

Hab mir die Nacht wegen dem Problem um die Ohren geschlagen, aber egal.
@tooly
Irgendwie hat das bei mir nicht geklappt. Über die Wiederherstellungskosole (fixmbr) den MBR auf Windows eingestellt und diese bootsek.lin in Linux erstellt mit


dd if=/dev/hda1 of=/media/bootsek.lin bs=512 count=1

Die Datei über FAT-USB-Stick auf C:\ in XP kopiert und boot.ini bearbeitet mit zusätzlichem Eintrag


c:\bootsek.lin="Debian Linux"

Der Windows bootloader startet zwar mit zwei einträgen, aber ich kann nur noch Win XP booten:(. Müsste ich Grub in den MBR von sda1 installieren? Wenn ja wie? Linux erreiche ich jetzt nur noch über Live-CD Knoppix 5.3. Mein Debian bootet gar nicht mehr.

Es ist mir ganz egal welcher Bootloader die arbeit verrichtet, solange es nur einer schafft beide Systeme zu booten bzw. eines wenn die externe Festplatte nicht dranhängt.

@meshuggah
Grub ist im MBR überschrieben worden, s. Antwort @tooly.
Wie erstelle ich die Bootpartition? Wieviel Platz brauche ich etwa und muss der Kernel da auch rein? Ist EXT3 das richtige Dateisystem dafür? Kann ich Grub dann irgendwie über Knoppix installieren? Dabei wären die zu übergebenden Parameter für mich interessant. Zu viele Fragen für einen Anfänger wie mich! Vielen Dank für eure Hilfe!

Grüße
Orns

tooly
16.03.08, 15:21
Hallo orns,

steht doch da: "Installieren Sie Linux. Während der Installation installieren Sie den Bootloader Grub nicht in den MBR, sondern in die root-Partition."

Die root Partition ist in Deinem Fall die ext. HD.

Ich würde jetzt folgendes machen:
entweder
Debian neu instalieren und dabei grub in sda installieren
oder
mit der Knoppix CD starten, per chroot ins Debian System wechseln und von da aus grub in sda installieren.

mfg
tooly

meshuggah
16.03.08, 18:35
Hi Orns,

also generell kann grub fast alles... Dein Problem sollte er auf jeden Fall lösbar sein, auch ohne son Schnickschnack wie Neuinstallation!

Am besten wäre, wenn Du in der erweiterten Partition (das ist bei Dir die /dev/hda2 eine zusätzliche logische Partition anlegst. (also zusätzlich zur /dev/hda5). Am einfachsten geht das mit PQ-Magic 8, oder noch besser mit Acronis Disk Director 10.

Diese Programme haben nämlich den Vorteil, dass Du bestehende Partitionen verkleinern kannst, wenn kein freier Platz mehr auf der Festplatte verfügbar ist.

Die Partition, die Du damit anlegst sollte einige MB (10-30) größer sein als der Inhalt Deines /boot/-Verzeichnisses und als Reiserfs oder Ext3 formatiert werden. In diese Partition kopierst Du sämtlichen Inhalt von /boot/. Das original /boot/-Verzeichnis würde ich sicherheitshalber umbenennen in zB /boot-bak/.
Dann erstellst Du ein neues leeres Verzeichnis /boot/. Nun musst Du noch einen fstab-Eintrag schreiben, der Dir die neue Bootpartition ins Root-Verzeichnis einhängt, der dürfte dann ca so aussehen:

/dev/hda6 /boot/ reiserfs notail 0 1
weiß aber nicht genau, ob man vielleicht noch andere optionen benutzt bei /boot/ oder so...

Zu guter letzt musst Du Dich noch um den grub kümmern. Der muss ja noch wissen, wo der den Kernel und das Root-Verzeichnis findet:
Dazu muss erst einmal der Eintrag in der /boot/grub/menu.lst geändert werden (natürlich in der auf der neuen Partition). Das müsste dann ca so aussehen:

default 0
timeout 5
color cyan/blue white/blue

title Debian GNU/Linux, kernel 2.6.18-6-686
root (hd0,5)
kernel /boot/vmlinuz-2.6.18-6-686 root=/dev/sda1 ro
initrd /boot/initrd.img-2.6.18-6-686
savedefault

title Debian GNU/Linux, kernel 2.6.18-6-686 (single-user mode)
root (hd0,5)
kernel /boot/vmlinuz-2.6.18-6-686 root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.18-6-686
savedefault

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda1
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1
Die rot markierten Teile bedeuten Änderungen (der Kernel ist ja jetzt auf einer anderen Partition, auf einer anderen Festplatte)
Die gelb markierten Teile müssen komplett gelöscht werden, denn in der neuen Partition besteht ja kein Unterordner /boot/ mehr.

zu guter letzt muss grub noch in den MBR installiert werden, also grub als root starten:


#>grub
grub>root (hd0,5)
grub>setup (hd0)

So, das müsste es eigentlich sein, ich kann allerdings keine Garantie geben, dass alles fehlerfrei ist. Habe alles aus dem Gedächtnis protokolliert. Also Anwendung auf eigene Gefahr, aber im Notfall einfach noch mal fragen, ich bleib am Ball ;-)

Ach ja, ansonsten vielleicht einfach mal die sgd - Super Grub Disk ausm Netz ziehen, brennen und davon booten, die sollte zumindest Dein Linux wieder starten können...

orns
17.03.08, 22:13
Nabend Leute,

@meshuggah
vielen Dank für die ausführliche Antwort! Damit hätte ich es bestimmt geschafft, aber ich war wohl zu ungeduldig und habe alles mögliche selbst ausprobiert bis ich letztlich nur noch via Live-CD starten konnte. Dafür kenne ich mich mit Grub jetzt ein wenig aus:D. Momentan habe ich eine primäre überdimensionierte Bootpartion (1GB) vor der Win Partition angelegt, die /boot Files reinkopiert und den MBR neu in Grub überschrieben mit:

#>grub
grub>root (hd0,0)
grub>setup (hd0)

Grub startet jetzt von meiner Internen und bietet mir das Auswahlmenü an. Leider habe ich mein Debian (/dev/sda1) formatiert für ein reinstall, weil es Probleme mit der SWAP (/dev/sda2) Partition gab (I/O Fehler uwswsup auf sda4, hätte ja auch sda2 sein müssen). Nicht so schlimm, weil ich Debian gerade erst installiert hatte ohne Daten drauf zu speichern. Jetzt kann ich nur noch Win XP booten, weil Debian gelöscht wurde.

Aber nu kann ich kein neues Linux auf meine Externe Installieren, weil im Installer meine Partitionierung der Externen nicht erkannt wird. Die Festplatte an sich wird schon angezeigt und ich könnte sie neu Partitionieren im Installer, aber ich will dabei nicht meine anderen Partitionen samt Daten verlieren. Habe schon mehrfach mit Testdisk die Geometrie der Heads von falschen 16 auf 255 gestellt (unter XP und Knoppix) und die Partitionstabelle neu in den MBR der Externen geschrieben, doch jedesmal nach dem Reboot stehen sie wieder auf 16 was m. E. den Fehler bei der Installation hervorruft. Mir fällt nichts mehr ein wie ich mein frisch gesaugtes Debian installieren kann. Bei einer Kubuntu Installation ist es dasselbe. Wieso hat die Debian Installation vorher meine Externe richtig analysiert und jetzt nicht mehr?
Unter Knoppix:
fdisk -l zeigt alles korrekt an! Mit cfdisk und gpart habe ich keinen Zugriff auf die Externe. Hat da noch einer ne Idee? Habe Partition Magic 8 unter XP laufen aber eher schlechte Erfahrungen gemacht. PM8 erkennt meine Externe auch nicht richtig, also kann ich nichts machen. Acronis Disk Director 10 ist mir zu teuer und wird dann auch nichts bringen denk ich. Mein Latein ist am Ende:confused:

Freue mich über jede Idee!
Grüße
Orns

orns
17.03.08, 22:22
Nachtrag:
Manchmal, keine Ahnung warum, ohne etwas angefasst zu haben erkennt auch PM8 die Partitionen meiner Externen richtig. Weiter mache ich nichts in PM8. Versuche ich Linux dann zu neu zu installieren, werden die Partitionen nicht erkannt. Danach: PM8 kriegt wieder Probleme die Partitionen zu lesen. Die angebotene Repair Funktion benutze ich nicht, weil sie nicht funzt und alles schlimmer macht. Ich drehe durch, nich noch ne Nachtschicht!

meshuggah
18.03.08, 08:24
Hast Du nicht die Möglichkeit, Deine Daten der externen komplett zu sichern? Dann würde ich einfach nochmal platt machen und alles neu aufspielen. Wenn Du irgendwann nochmal Debian installieren solltest, würde ich die Partitionierung mit dem Debian-Installer manuell machen und direkt die neue /boot-Partition auf hda als solche einbinden! Wenn Du dann den grub noch in den MBR von hda installierst, ist eigentlich alles geritzt :-)

PS: es gibt auch ne Demo zu Acronis Disk Director http://www.chip.de/downloads/c1_downloads_hs_getfile_v1_16100602.html?t=1205828 733&v=3600&

es lohnt sich wirklich, das mal zu probieren, ist mittlerweile wesentlich zuverlässiger und umfangreicher als PQ, die machen ja auch nix mehr...
Könnte mir vorstellen, das das noch was richten kann. Aber wie gesagt, eine Datensicherung ist immer zu empfehlen, und wenn Du Dir noch eine externe von einem guten Freund leihst.

orns
25.03.08, 13:00
Hai nochmal,

ich habs jetzt endlich geschafft. Bootpartition eingerichtet von der Grub startet. Habe die externe irgendwie hinbekommen. Mit Testdisk die richtigen Partitionen eingestellt und Windows neu gestartet ohne eine Linuxinstallation zu wagen. Nach dem Reboot hat Partition Magic die Partitionierung der Externen aufmal erkannt. Die vormals Debian Partition (ext3) habe ich als FAT32 formatiert und mit Kubuntu manuell wieder umformatiert als SWAP und root (ext3). Bin echt überrascht wie schnell das System startet. Bis jetzt habe ich nicht wirklich große Probleme gehabt und freue mich, dass ich mich ans Linux rangetraut habe. Vielen Dank nochmals für eure Hilfe!

Viele Grüße
Orns