# Externe Festplatte Simulieren



## phpinfo (26. Juli 2007)

Hallo,

wie mache ich aus einer Linux-Distribution eine externe USB/Firewire Festplatte?


----------



## Sinac (26. Juli 2007)

Was ist das denn für eine Frage?
Erklär mal bitte ordentlich was du willst oder vorhast!


----------



## phpinfo (26. Juli 2007)

Naja - welchen Teil des Satzes hast du denn nicht verstanden?

Hätt' nicht gedacht - dass das einer größere Erklärung bedarf.

Ich möchte aus einem Rechner; am liebsten mit einer sehr schlanken Linux Distibution, die auf ein Flashspeicher-Modul packen kann; eine externe USB oder Firewire Festplatte machen. 

Um so via Raid-Controller und einem tiny 4-Bay Gehäuse eine externe Festplatte zu bauen, die meinen Preformanceansprüchen gerecht wird. 

Zwar gibt es so tolle 4-Bay Gehäuse für 169 Euro - leider kein Raid.

Dann fangen ab 400 -> 500 Euro 4-Bay Raid Gehäuse an.
Leider haben die keinen Luxus wie Raid Migration oder Online Capacity Expansion <= was lebenswichtig ist

Dann gibt es ab 400 -> 500 Euro diese atemberaubenden 4-Bay NAS Lösungen. Leider mit der atemberaubenden Geschwindigkeit von sage und schreibe 15 mb/s read/write!

Dann gibts für 500 Euro ein sehr schönes 5-Bay NAS Geähuse.
Thecus N5200 <= sogar mit OCE und Raid Migration. Hat sogar als - meines Wissens nach - einzige Lösung in diesem Preissegment eine akzeptablerer Transferrate von bis zu 35 mb/s als Raid 5 Lösung.
Leider bietet das Gehäuse das atemberaubende Feature, dass im Falle eines Stromausfalles während OCE oder Raid Migration das komplette Raid Array zerstört wird. Brave New Raid 5.

Selbst eine winzige kleine Firewire-800-Bridge mit ordentlichem, integrierten Raid kost mich 250 Euro. Und ich brauch zwei davon. Und hab dann nicht mal Raid 5 Geschweige denn OCE und Co!!

Lange rede - kurzer Sinn: Ich hab alle Hardwarekomponenten zu Hand -> warum dann ein Gehäuse kaufen wenn man’s auch selbst machen kann? Einziges Problem; es soll kein NAS sein, sondern eine externe Festplatte mit wünschenswerter Firewire 800 Geschwindigkeit und einem ordentlichem Raid-Controller. Leider Gottes fehlt mir das wissen, wie ich eine Linux Distribution dazu überreden kann, einen Firewire oder USB Port zu überwache und im Falle einer Verbindung so zu reagieren, dass sie sich als Festplatte ausgibt. 

Ich find zwar dutzende NAS Distributionen, die auch sicherlich alle schön ihren Job machen - leider nur nicht das, was ich suche.

Erklärung genug – oder soll ich noch einen Roman schreiben?


----------



## Dennis Wronka (27. Juli 2007)

Du willst also ein externes Gehause als Festplatte nutzen, z.B. per SCSI oder eben wie von Dir erwaehnt USB. Dieses Gehaeuse soll ein Linux-System auf einem RAID beherbergen?
Das kannst Du, wuerde ich sagen mit jeder Distribution machen, es ist nur eben eine Sache von "gewusst wie".
Oder willst Du eine bestehende Installation auf eine externe Platte, oder meinetwegen diese externe Kiste, uebertragen und dann Deinen Rechner weiterhin davon booten koennen?

Wichtig ist dass der Kernel die Partitionen finden kann, wenn Du nicht weisst welche Devices zum Einsatz kommen dann nutz Labels, damit wird das gleich ungemein flexibler.

Bei EasyLFS nutze ich weder in der fstab noch beim Bootvorgang irgendwelche Device-Namen, alles wird ueber Labels erkannt und genutzt. Am RAID-Support werde ich uebrigens als naechstes arbeiten. LVM und verschluesselte Partitionen funktionieren bereits wunderbar.  Wobei ich zugeben muss dass man bei einer verschluesselten Partition nicht mit Labels arbeiten kann und somit die Flexibilitaet verliert die einem Labels bieten.

Um von RAID/LVM/verschluesselten Partitionen zu booten, wenn es kein richtiges Hardware-RAID ist, brauchst Du eine separate Boot-Partition und einen Kernel mit einer InitRD oder einem InitRamFs. Darin kann das root-Device nutzbar gemacht und gebootet werden.
In der fstab werden Eintraege wie

```
/dev/hda3 / ...
```
in

```
LABEL=root / ...
```
geaendert und den Dateisystemen natuerlich noch das entsprechende Label aufgedrueckt.

Welche Distro das von Haus aus bietet weiss ich nicht, EasyLFS wird in der naechsten Version dieses nette Feature mitbringen, bis dahin dauert es aber noch etwas.


----------



## phpinfo (27. Juli 2007)

> Du willst also ein externes Gehause als Festplatte nutzen, z.B. per SCSI oder eben wie von Dir erwaehnt USB. Dieses Gehaeuse soll ein Linux-System auf einem RAID beherbergen?



Bingo!
Wobei das Linux nicht zwingend auf dem Raid liegen muss, sondern von mir aus auch ein Flashspeicher, der per IDE am Gehäuse angehängt ist, sein kann. Die muss - abgesehen von ner SSH - auch nichts bieten. Das Raid verwaltet sich - wenn es denn einmal eingestellt ist - per Hardwarecontroller autonom. Ich brauch die Linux Distribution eigentlich nur, weil ich eine schlanke Möglichkeit suche, aus diesem Gebilde nun eine externe Festplatte zu machen, so dass ein anderes Gerät, welches per USB/Firewire daran angeschlossen wird, dieses als eben solches erkennt!



> Das kannst Du, wuerde ich sagen mit jeder Distribution machen, es ist nur eben eine Sache von "gewusst wie".


An dem _gewusst wie_ scheitert es. Per Netzwerk u.z.n von Samba ist das ja alles kein Problem.

Ich weiß nur leider nicht, wie ich selbiges per Firewire oder USB realisieren kann, so dass mein Linux-Gehäuse als externe Festplatte für andere Rechner erkannt wird. 

USB2.0 wäre toll - FireWire wäre göttlich - weil ich von Firewire meinen Mac direkt booten könnte -> wäre ein sehr sehr nettes Gimmick! Zumal Firewire 800 nicht mehr als Flaschenhals wirken würde!

Bei stundenlangem Google-forschen finde ich jedoch nur Themen wie: "Wie mounte ich eine externe Festplatte" oder "Wie kann ich von einer externen Festplatte booten" oder "Wie installier ich Linux auf eine externe Festplatte."

Aber - wie oben schon angedeutet: Momentan ist mein einziges Hindernis, dass ich keine Ahnung habe, wie ich eine Linux Distribution dazu überreden kann, dass sie sich über Firewire/USB für einen anderen Rechner als ein externes Blockdevice ausgibt!

Mein schönes Powerbook kriegt das auf Wunsch ja auch hin^^ But don't know the magic behind!


----------



## Dennis Wronka (28. Juli 2007)

Wie gesagt, ich glaube nicht dass das System wissen muss dass es von USB oder sonstwo gestartet wird. Wichtig ist dass die Systempartition irgendwie gemountet werden kann, und dafuer ist die Kenntnis des Devices nicht notwendig, wenngleich dies wohl der meistgenutzt weg sein duerfte. Mounten kann man aber auch ueber Angabe des Dateisystem-Labels oder der UUID.

Als Beispiel mal das Init-Script welches im InitRamFs von EasyLFS zum Einsatz kommt:

```
#!/bin/sh
/bin/mount proc -t proc /proc
/bin/mount sysfs -t sysfs /sys
/bin/udevstart
if [ -x /sbin/lvm ]; then
	if [ "$(/sbin/lvm lvscan | /bin/grep root)" != "" ]; then
		/sbin/lvm vgchange -ay
	fi
fi
if [ -x /sbin/cryptsetup ] && [ -r /etc/cryptroot ]; then
	CRYPTROOT=$(/bin/cat /etc/cryptroot)
	/sbin/cryptsetup luksOpen ${CRYPTROOT} cryptroot
fi
ROOTDEV=$(/sbin/findfs LABEL=root)
if [ "${ROOTDEV}" != "" ]; then
	ROOTFS=$(/bin/fstype ${ROOTDEV} | /bin/grep FSTYPE | /bin/awk -F '=' '{ print $2 }')
	echo "Found root-device ${ROOTDEV} with file-system ${ROOTFS}"
	/bin/mount -t ${ROOTFS} ${ROOTDEV} /easylfs
	cd /easylfs
	RUNLEVEL=$(/bin/cat /easylfs/etc/inittab | /bin/grep id | /bin/awk -F ':' '{ print $2 }')
	exec /bin/run-init /easylfs /sbin/init ${RUNLEVEL}
else
	echo "No root-device found!"
fi
```
Hierbei werden zuerst solche Spielereien wie LVM oder verschluesselte Partitionen aktiviert, anschliessend wird nach der Root-Partition gesucht, welche das Label root hat (dies wird spaeter wohl noch in easylfs_root geaendert werden), diese gemountet und dann gestartet.
Ob es sich bei dem Device nun um eine Festplatte oder irgendein externes, vom Kernel als Festplatte handhabbares Device handelt ist nicht von Belang.


----------



## phpinfo (28. Juli 2007)

Das Thema ist nicht, wie ich Linux von einem externen Gehäuse gestartet kriege, als viel eher: wie mach ich aus Linux eine externe Festplatte.

Zwei Rechner, 1x Linux, 1x Mac OS X, du hängst zwischen beiden Rechnern ein Firewirekabel und das Raidarray auf dem Linuxrechner soll für den Mac OS X Rechner als ganz normale Festplatte erscheinen.

So als wenn ich aus dem Linux Rechner ein iSCSI Target mache und aus dem Mac Rechner ein iSCSI Initiator. Nur eben ohne iSCSI   Was zwar pretty cool ist, but nevertheless die Hardware meines geplaneten Linuxrechners killt. Und nen reiner iSCSI Adapter würd auch gleich wieder 700 Euro kosten.

So wie das auch jedes billige Gehäuse einer externen Festplatte hinkriegt -> sie identifiziert sich als externes Blockdevice und mein toller Mac - oder sonstige Betriebssysteme - mounten das dann als Festplatte! Wie krieg ich die Linux Kiste dazu, dass sie sich auch so verhält?

Und bitte jetzt keine Antworten wie Samba, FTP, SSH usw! Danke


----------



## Dennis Wronka (28. Juli 2007)

phpinfo hat gesagt.:


> Das Thema ist nicht, wie ich Linux von einem externen Gehäuse gestartet kriege, als viel eher: wie mach ich aus Linux eine externe Festplatte.


Ach so, Du willst also ein laufendes System per USB als Device anbieten. Ich dachte bislang Du wolltest eben in einer externen Box, die einfach nur einen RAID-Controller und ein paar Platten enthaelt ein Linux lagern welches dann per USB gestartet werden kann.



phpinfo hat gesagt.:


> Und bitte jetzt keine Antworten wie Samba, FTP, SSH usw! Danke


Keine Angst, in diese Richtung denk ich hier nicht, da es doch recht offensichtlich ist dass Du sowas nicht willst. 

Okay, mit der neuen Erkenntnis muss ich erstmal sagen dass ich keine Loesung fuer Dein Problem habe. Da es aber ein durchaus interessantes Problem ist werde ich mal schauen ob ich nicht zu dem Thema was finden kann. Da muesste es doch bestimmt was geben.


----------



## phpinfo (28. Juli 2007)

> werde ich mal schauen ob ich nicht zu dem Thema was finden kann. Da muesste es doch bestimmt was geben.


So naiv war ich auch mal 

Auf jeden Fall schon mal besten dank für deine Bemühungen und deine klasse Betreuung/Ausdauer hier!


----------



## Dennis Wronka (29. Juli 2007)

Nichts zu danken.

Uebrigens, Du hast erwaehnt dass Mac OS sowas kann, wie heisst denn die Option dafuer? Vielleicht laesst sich darueber was finden.


----------



## phpinfo (29. Juli 2007)

Hallo,

Mac OS X kann das - soweit ich weiß - nicht. Das ist ein Feature der PowerBooks und MacBooks. 

Dort kannst du während des Bootvorgangs eine Tastenkombination (T) drücken, dann bootet er im sogenannten Firewire-Target-Modus. Das dauert keine 5 Sekunden. Danach kannst du das Teil über Firewire an einem anderem Rechner als externe Firewire-Festplatte erkannt. 

Very cool stuff!


[NACHTRAG]
Hab gerade mal auf der Apple Site geforscht, welche Modelle diesen Modus unterstützten:
http://docs.info.apple.com/article.html?artnum=58583

Ist also definitiv doch kein reines PowerBook/MacBook Feature, sondern offensichtlich eines der Firmware!
Sorry für diese Fehlinformation!


----------



## Dennis Wronka (1. August 2007)

Zum Thema USB hab ich grad das hier finden koennen. Es scheint als waere dies nicht nur von der Software sondern auch von der Hardware abhaengig.


----------



## phpinfo (1. August 2007)

Vielen Dank für den Link!

Auch wenn er - obwohl ich das schon irgendwie befürchtet hatte - doch sehr entmutigend ist. Ich werde meinen Sohn von nun an in dem Wissen erziehen - dass er alles erreichen kann - er muss nur fest daran glauben; außer natürlich eine eigene externe Festplatte bauen mit Standardhardware  

Ich habe ihn also zehn Jahre seines Lebens lang belogen - danke für diese Erkenntnis  Dafür gebe ich Ihm jetzt erstmal ein Eis aus.

Und nach diesem Trip werde ich mal gucken, wie man mit möglichst knappen Budget ein ordentliches iSCSI Target auf Raid 5 Basis mit zuverlässigem OCE und ORLM bauen kann.


----------



## Dennis Wronka (1. August 2007)

phpinfo hat gesagt.:


> Dafür gebe ich Ihm jetzt erstmal ein Eis aus.



Na da hat das Ganze wenigstens fuer einen ein positives Ende genommen.


----------

