Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie Verzeichnisse auf externe HDD auslagern?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Wie Verzeichnisse auf externe HDD auslagern?

    Hallo,
    ich habe einen Odroid U3 mit Openhab darauf im Einsatz. Bisher läuft alles auf einer mmc, da ich aber Angst habe, diese durch die rrd4j-Persistence zu schrotten, möchte ich Openhab komplett auf eine externe USB-HDD auslagern, damit alles dorthin geschrieben wird und die mmc nur noch fürs Betriebssystem benötigt wird.

    Linux-Logdateien und Dateizugriffs-Stempel habe ich schon abgestellt.

    Wie kann ich Openhab auf eine externe HDD verlagern?

    Ich hab leider (noch) wenig Ahnung von Linux. Die HDD ist derzeit noch in NTFS formatiert, weil ich sie bisher für Windows verwendet habe. Also wenn mir jemand weiterhelfen könnte, bitte ganz von vorne anfangen ;-)

    #2
    Aaaaalso...

    Der Odroid U3 hat ja nur USB2.0-Schnittstellen, Deine Platte muss natürlich einen solchen Anschluss haben.
    Wenn Du die Platte an den Odroid anschließt, sollte dieser das Gerät selbsttätig finden. Ich bin mir nicht sicher, ob NTSF als Dateisystem direkt unterstützt wird, es könnte aber sein, dann taucht die Platte direkt im Dateisystem auf, vermutlich unter /media/...
    Falls das so ist, musst Du zum formatieren erstmal die Platte unmounten.

    Mittels Konsole, die meisten Befehle benötigen Super-User-Rechte, also am besten mit
    Code:
    sudo su
    root werden.
    Mit
    Code:
    mount
    bekommst Du eine Übersicht über die gemounteten Dateisysteme. Dort musst Du raussuchen, wie Deine Platte gemountet ist und mit
    Code:
    umount /pfad/zur/platte
    unmounten.
    Am einfachsten kannst Du die Platte herausfinden, wenn Du
    Code:
    mount
    bereits einmal vor dem Anstecken der Platte aufrufst und die Ausgaben vergleichst. Falls beide gleich sind, ist die Platte nicht gemountet, dann musst Du herausfinden, als welches Gerät sie unter /dev/ auftaucht (vermutlich /dev/sdb, falls die Flashcard vom Odroid als /dev/sda vorhanden ist). Falls die Platte unter /dev/sdb vorhanden ist, kannst Du sie mit
    Code:
    fdisk /dev/sdb
    partitionieren. Da wird der interaktive Modus gestartet, wenn Dir eine Partition reicht, ist das Programm quasi selbsterklärend.

    Anschließend findest Du alle angelegten Partitionen als Geräte unter /dev/ wieder, z.B. /dev/sdb1 für die erste primäre Partition.
    Mit
    Code:
    mke2fs -t ext4 /dev/sdb1
    erzeugst Du auf der ersten Partition der Festplatte sdb das Dateisystem ext4. Wenn das soweit fertig ist, kannst Du die Partition einhängen. Zum testen reicht ein
    Code:
    mount /dev/sdb1 /mnt
    um die Partition unter /mnt sichtbar zu machen.
    Wenn Du openhab komplett auf die Platte verlegen willst, kopierst Du jetzt alle Daten aus /openhab-verzeichnis/ nach /mnt, unmountest die Platte unter /mnt, löschst Den Inhalt von /openhab-Verzeichnis/ und mountest die Platte nach /openhab-verzeichnis, anschließend sollte sich das System so verhalten, als hättest Du nichts verändert (außer natürlich, dass keine Daten mehr auf die SD-Karte geschrieben werden).
    Damit der Mount einen System-Neustart überlebt, musst Du noch in der Datei /etc/fstab einen Eintrag für die USB-Festplatte anlegen.
    Schau Dir dazu die vorhandenen Einträge an. Die UUID Deiner neuen Partition bekommst Du mit
    Code:
    blkid /dev/sdb1
    angezeigt. Die UUID ist immer gleich, solange Du die Platte nicht formatierst oder die UUID gezielt änderst, so spielt es keine Rolle, an welchem USB-Port die Platte angeschlossen ist oder in welcher Reihenfolge externe Platten eingebunden werden.

    Kommentar


      #3
      Super! Danke!

      Werd ich heute Abend gleich ausprobieren und berichten.

      Kommentar


        #4
        Die Platte kommt nicht unter "mount". Und unter dev liegt nur sda - aber in das Verzeichnis kann man nicht rein. Oder ist das unter dev mit dem ganzen Zeug überhaupt kein Ordner?

        Die Platte ist ntfs formatiert. Muss ich da vielleicht noch was installieren? Ich hab ubuntu 14.04 oder so drauf, das aktuelle von odroid.


        Übrigens: Platte und Hub sind beide USB 3.0 - aber das ist ja abwärtskompatibel, oder?

        Kommentar


          #5
          Genau, /dev ist kein normales Verzeichnis.

          ob USB 3.0 ein Problem darstellt... eigentlich sollte die Platte normal als USB 2.0 arbeiten, wenn der Computer USB 2.0 'spricht'.

          Als erstes könntest Du direkt nach dem Anstecken der Festplatte
          Code:
          dmesg
          aufrufen, das zeigt dann, dass der Rechner eine neue Hardware erkannt hat.
          Code:
          lsusb
          zeigt, welche Geräte am USB-Bus angemeldet sind (das müsste dann zum einen der Hub und zum anderen das externe Gehäuse sein).

          Kommentar


            #6
            Ok, jetzt hab ichs. Die erste Fesplatte war defekt, lies sich unter Windows auch nicht öffnen.

            Jetzt hab ich eine andere rangehängt.

            Also Systemlaufwerk ist eine mmc.

            Die Platte, auf der nur eine Partition drauf ist, hat sda5 bekommen. Müsste das nicht sda sein bei der ersten Partition? Sonst ist kein weiterer Speicher angeschlossen.

            Derzeit in ntfs formatiert, ich werde jetzt mal versuchen, das in ext4 zu formatieren. Partitionieren muss ich da ja nichts, wenn die eine Partition so bleiben soll.

            Kommentar


              #7
              Naja, zumindest solltest Du über fdisk die Partitionskennung von NTFS auf Linux ändern.
              sda ist Deine Festplatte als Ganzes, und die sollte unter /dev/ auch auftauchen. Du kannst mit
              Code:
              ls -l /dev/sda*
              alle Partitionen (und das Laufwerk selbst) auflisten lassen. Die 5 bedeutet, dass es sich um eine erweiterte Partition handelt (die primären Partitionen gehen von 1-4).
              Damit geht Dir natürlich etwas Platz verloren, wobei das vermutlich eher akademischen Wert hat bei den Festplattengrößen heutzutage. Für das Einbinden in das Linux-Dateisystem spielt es keine Rolle. Falls Du natürlich weitere Verzeichnisse auf die Festplatte auslagern möchtest, könnte es sinnvoll sein, die Platte dennoch neu zu partitionieren, und z.B. erstmal nur 10% der Platte für openhab insgesamt zur Verfügung zu stellen. Dann kannst Du bei späteren Erweiterungen problemlos weitere Partitionen erstellen und an anderer Stelle ins Dateisystem einhängen.

              Kommentar


                #8
                Das ist eine "extended partition" (die alte MBR-Partitionstabelle kennt nur vier Einträge, zwecks Flexibilität hat man sich vor Urzeiten diesen Workaround ausgedacht). Machen manche Windowsversionen standardmäßig so, wenn sie eine neue Platte "formatieren". Kein Problem; allerdings würde ich heutzutage grundsätzlich eine GPT-Partitionstabelle anlegen.
                DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

                Kommentar


                  #9
                  Hab mittlerweile auf ext4 formatiert und zuerst neu partitioniert.

                  Leider hab ich die fstab anscheinend nicht richtig ergänzt und jetzt bootet der odroid nicht mehr. Ich bin über VPN drauf und muss leider bis heute Abend warten, bis ich zuhause bin und das mit einer Live-CD reparieren kann :-(

                  Aber zumindest klappt bisher alles. Ich werde das dann nochmal neu partitionieren und mehrere Partitionen machen.

                  Also ist es sinnvoller, mehrere Partitionen anzulegen und nicht mehrere Ordner auf einer großen Partition?

                  Kommentar


                    #10
                    Zitat von halloween Beitrag anzeigen
                    Also ist es sinnvoller, mehrere Partitionen anzulegen und nicht mehrere Ordner auf einer großen Partition?
                    Mehrere Partitionen machen hauptsächlich dann Sinn, wenn du von mehreren Betriebssystemen darauf zugreifen magst. Ansonsten haben die Dinger den großen Nachteil, dass es ziemlicher Aufwand ist, eine Partition nachträglich größer zu machen. (Oder kleiner, wenn du noch eine brauchst.)

                    Ein möglicher Vorteil von mehreren Partitionen ist, dass die Daten auf A nicht den Platz auf B vollmüllen, d.h. wenn /var/log überläuft dann kannst du in /opt/openhab/persistence immer noch was schreiben. Das mache ich grundsätzlich mit LVM; für jemanden, der sich damit nicht eh schon auskennt, ist das aber möglicherweise Overkill.

                    Ich würde auf einer Platte, die fest am Odroid (oder _irgendeinem_ Linuxsystem) angeschlossen bleibt, zwei Partitionen einrichten: ein bis zwei GByte für Swapspace (nie wirklich verkehrt), und den Rest für den ganzen Rest. Den kann man als großes ext4-Dateisystem formatieren, oder in kleine flexible Happen unterteilen. Grob geht das so:

                    Code:
                    # das mache ich einmal
                    apt-get install lvm2
                    pvformat /dev/sda2
                    vgcreate daten /dev/sda2
                    
                    # das mache ich wenn ich eine 2-GB-Partition brauche
                    lvcreate -n log -L 2G daten
                    mkfs.ext4 /dev/daten/log
                    mount /dev/daten/log /sonst/wo
                    
                    # und so mache ich das Ding nachträglich ein GB größer. OHNE Reboot
                    lvextend -L +1G /dev/daten/log
                    resize2fs /dev/daten/log
                    Natürlich kann man den Swap auch mit ins LVM packen …
                    DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

                    Kommentar


                      #11
                      Live-CD ist wahrscheinlich unnötig...

                      Ich bin mir ziemlich sicher, dass Du den Odroid nicht von einer CD gestartet bekommst. Grund hierfür ist, dass die entsprechenden Funktionen nicht im U-Boot implementiert sind.

                      Einen ersten Versuch wäre wert, den Odroid ohne angesteckte Platte zu booten. Wenn die Platte nicht angeschlossen ist, kann er sie auch nicht einhängen -> eine fehlerhafte Zeile für die HD wird keine weiteren Folgen haben. Der Odroid läuft dann normal, und Du kannst die fstab korrigieren. Falls Du natürlich an den bestehenden Zeilen rumgeschraubt hast, wirst Du um eine andere Rettung nicht herum kommen.
                      Falls der Odroid auch mit abgesteckter HDD nicht bootet, kannst Du mit dem mitgelieferten Adapter die mmc als USB-Stick am Desktop anschließen. Wenn Du vorher eine Virtuelle Maschine z.B mit Debian einrichtest, kannst Du die mmc in der VM mounten und dort die fstab ändern. Alternativ zur VM kannst Du natürlich auch den ganzen Desktop von einer Live-CD starten.

                      Was die Partitionen betrifft: Du wolltest ja nur openHAB auf die Festplatte auslagern. Wenn Du jetzt irgendwann auf die Idee kommst, noch eine weitere Anwendung zu installieren, und die vielleicht auch auslagern möchtest, geht das nur mit erheblichem Aufwand bzw. Du musst alles umbauen.
                      Wenn Du aber noch Platz auf der Festplatte frei hast, kannst Du ohne Probleme den gleichen Weg wie mit dem openHAB-Verzeichnis gehen, Du kopierst also den Inhalt des Anwendungsverzeichnisses in eine neue Partition und bindest diese neue Partition in das Anwendungsverzeichnis ein.

                      Wenn Du den Odroid von der Festplatte starten willst, geht das natürlich auch. Allerdings unterstützt der Odroid das von Haus aus nicht auf herkömmlichem Weg, auf jeden Fall muss die mmc weiterhin gesteckt sein, und der Odroid wird die ersten Schritte immer von dort ausführen. Im Netz gibt es verschiedene Anleitungen, wie z.B Arch-Linux auf eine HD ausgelagert werden kann.

                      Natürlich ist der Weg über den Logical Volume Manager (LVM) sehr elegant, wenn man mit mehreren Partitionen arbeiten will - eben wegen der einfachen Vergrößerung bestehender Partitionen. Aber ich sehe LVM eindeutig nicht als Anfänger-Funktion

                      Allgemein kann man solche Sachen hervorragend in einer VM ausprobieren, auch wenn die nicht ganz so schnell ist, aber die VM ist dafür schnell repariert, wenn man sie mal kaputt gespielt hat. (Einfach zmu letzten Snapshot zurück, den man hoffentlich vor den Experimenten angelegt hat)

                      Kommentar


                        #12
                        Natürlich Live-CD auf meinem Notebook und nicht auf dem Odroid direkt...

                        Aber die Lösung mit einfach HDD abstecken geht natürlich schneller :-) Werd ich so machen.


                        Kann man denn nur Partitionen mounten, oder? Also wenn ich eine große Partition erstelle und darauf ein Verzeichnis Openhab anlege, kann ich das dann nicht mounten?

                        Wenn ich eine extra Openhab Partition anlege, dann kommt alles ins root der Partition, oder? Also nicht nochmal extra einen Ordner openhab?


                        Ich werde sicher in Zukunft noch mehr mit anderen Dingen ausprobieren, es soll nicht bei Openhab bleiben. Dann werd ich wohl den Weg mit den mehreren Partitionen gehen. Zuerst lege ich mir mal nur die benötigten an und später kann ich dann den unpartitionierten Bereich nach belieben neu einteilen.

                        Hab eine 500 GB 2,5" HDD aus meinem Notebook, weil da eine SSD reingekommen ist und die HDD somit nutzlos rumlag.

                        Kommentar


                          #13
                          Zitat von halloween Beitrag anzeigen
                          Kann man denn nur Partitionen mounten, oder? Also wenn ich eine große Partition erstelle und darauf ein Verzeichnis Openhab anlege, kann ich das dann nicht mounten?

                          Wenn ich eine extra Openhab Partition anlege, dann kommt alles ins root der Partition, oder? Also nicht nochmal extra einen Ordner openhab?
                          Es gibt verschiedene Optionen, eine Partition wird aber immer als Verzeichnis unterhalb von / gemountet. Dafür muss auch zuerst ein Verzeichnis angelegt werden. z.B. legst Du unter /opt/ ein Verzeichnis /opt/openhab an. Dann mountest Du die Partition nach /opt/openhab. Der Inhalt der Partition wird also gelistet, wenn Du
                          Code:
                          ls /opt/openhab
                          aufrufst. Es ist auch möglich, einzelne Verzeichnisse einer Partition an unterschiedlichen Stellen zu mounten, aber das ist dann wieder etwas fortgeschritten. Im Prinzip sieht das dann ähnlich aus, wie ein Symlink, man muss zuerst die Partition als ganzes mounten, anschließend kann man einzelne Verzeichnisse zusätzlich an anderen Stellen im Dateisystem einhängen. Wie gesagt, etwas für Fortgeschrittene.

                          Da 500GB sehr üppig für openHAB + Daten sind, kannst Du ruhig die Partitionsgröße etwas kleiner wählen und bist dafür flexibel, was spätere Erweiterungen betrifft.

                          Fortgeschrittene Linuxer teilen das Dateisystem gerne in verschiedene Bereiche auf, z.B. /, /var, /home, /boot auf verschiedenen Partitionen. / ist die Wurzel und enthält dann mehr oder weniger die statischen Dinge, /boot enthält den Kernel und das Drumherum zum booten, auch eher statisch und gerne ein 'dummes' Dateisystem, was vielleicht nicht so mächtig ist, dafür aber von jedem Kernel unterstützt wird, so dass der Bootprozess laufen kann. /var enthält vor allem veränderliche Daten, temporäre dateien usw., in /home liegen die persönlichen Dateien und Einstellungen, so dass z.B. dein Backup vor allem diesen Zweig intensiv sichern kann, wogegen / vielleicht nur einmal pro Woche gesichert wird usw.

                          Wenn Du gleich Ordnung schaffen willst, kannst Du eine Partition für /var anlegen, eine für /opt/openhab und eine für swap, 2GByte für Swap sind eine gute Größe, für /var vielleicht 8GByte, dann hast Du da Ruhe allerdings ist das Umstellen im laufenden Betrieb für /var nicht ganz trivial, und beim umkopieren der vorhandenen Daten sollten alle Rechte erhalten bleiben. Würde ich auf jeden Fall vorher in einer VM ausprobieren und gerne auch vorher noch etwas ins Thema einlesen
                          Für openhab selbst mit Daten sollten 50GByte mehr als ausreichend sein, mein openHAB läuft seit Version 1.2, ich hab alle Daten immer mit migriert, diverse Temperaturen werden mit rrd4j gesichert, und mein openhab-Verzeichnis ist insgesamt nicht mal 3GByte groß (allerdings enthält es weder die influx- noch die mysql- Datenbanken)

                          Kommentar


                            #14
                            Also … du kannst deine Partition da mounten, wo du magst. Zum Beispiel unter /mnt/externe_platte.

                            Angenommen, die externe Platte ist /dev/sda und deine Daten sind die erste Partition, dann sagst du ihm sowas wie

                            Code:
                            mkfs.ext4 /dev/sda1
                            mkdir /mnt/externe_platte
                            echo "/dev/sda1 /mnt/externe_platte ext4 defaults 0 0" >>/etc/fstab
                            mount /mnt/externe_platte
                            Statt des letzten Befehls kannst du auch rebooten, um sicherzustellen, dass das automatische Mounten funktioniert.

                            Da kannst du dann beliebige Verzeichnisse anlegen und deine "Echtdaten" dorthin umleiten. Beispiel für /var/log:

                            Code:
                            cd /var
                            cp -a log /mnt/externe_platte/varlog
                            rm -r log
                            ln -s /mnt/externe_platte/varlog log
                            shutdown -r now
                            Alles, was jetzt nach /var/log/irgendwas loggen will schreibt ab sofort auf die externe Platte in das entsprechende Verzeichnis, weil /var/log jetzt da hinzeigt.

                            Den Reboot im zweiten Beispiel brauchst du, weil zu viele Programme weiterhin herumlungern und noch Dateien im alten /var/log offen haben, die du eigentlich eben gelöscht hast. (Ja, unter Unix geht das. Windows hätte dich angemeckert.)

                            Dasselbe kannst du mit /opt/openhab machen.
                            DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

                            Kommentar


                              #15
                              Ok, ganz kapiere ich aber noch nicht, wozu ich dann mehrere Partitionen benötige, worin der große Vorteil liegt.

                              In dem Beispiel mit var/log wurde auf der Platte ja ein Verzeichnis "varlog" angelegt und keine extra Partition dafür. Ebenso kann ich das doch auch mit Openhab so machen? Auf der externen Platte neben varlog noch ein openhab-Verzeichnis und alles dahin umleiten.

                              Warum ist dann die eigene Partition für alles "besser" als eine große mit mehreren Verzeichnissen?


                              ---------------------------------
                              Ich komme aus der Windows-Welt, da mache ich eigentlich nicht so viel mit Partitionen. Eine fürs OS und eine weitere für die Daten, damit bei einer Neuinstallation die Daten noch vorhanden sind.
                              --- That´s it---
                              Darum ist das wohl etwas alles ein wenig schwer zu durchschauen für mich (noch zumindest)...

                              Kommentar

                              Lädt...
                              X