Jörg: Linux Anfänge

Hallo Forum,

habe mir jetzt unter Win10 ein Ubuntu Linux-Subsystem erstellt.

Hab mir auch schon ein Schlüsselpaar für mein Homeverzeichnis und der Webserver erstellt und übertragen. Ob das so funktioniert hat, wie ich möchte, weiß ich erst, wenn rsync ohne Passworteingabe funktioniert.

Zuallerst mal habe ich ein Problem, nämlich komme ich nicht aus meinem (virtuellen?) Home-Verzeichnis heraus. Die zu synchronisierenden Daten liegen auf der Partition Z, mein Homeverzeichnis auf C:/irgendwas...??

Wie komme ich aus meinem "Home-Käfig" heraus? Früher über cygwin habe ich das geschafft, nun im Win-Ubuntu-Home-Käfig weiß ich an dieser Stelle schonmal nicht mehr weiter.

Würde mich über Hilfe freuen 😀

Jörg

  1. Ich hatte schonmal an

    /mnt/z/

    gedacht, dann erhalte ich aber die Rückmeldung

    -bash: /mnt/z/: Is a directory

    1. Ja. In /mnt/ liegt für jeden Laufwerksbuchstabe ein verzeichnis. Bringt Dich

      cd /mnt/z
      ls -al
      

      auf irgendeine Idee?

      1. Hi Raketenwilli,

        cd /mnt/z
        ls -al
        

        auf irgendeine Idee?

        Oh, danke. Jetzt schäm ich mich ein bischen 😉

        Jörg

        1. Oh, danke.

          Nicht dafür.

          Jetzt schäm ich mich ein bischen

          NICHT DAFÜR!

    2. Hallo,

      habe mir jetzt unter Win10 ein Ubuntu Linux-Subsystem erstellt.

      sehr schön. 😀

      Zuallerst mal habe ich ein Problem, nämlich komme ich nicht aus meinem (virtuellen?) Home-Verzeichnis heraus.

      That's the idea.Das Linux-Subsystem ist quasi ein komplett isolierter virtueller PC, der mit seinem Hostsystem nur über ein virtuelles Netzwerk kommuniziert.

      Ich hatte schonmal an

      /mnt/z/

      gedacht, dann erhalte ich aber die Rückmeldung

      -bash: /mnt/z/: Is a directory

      Was erwartest du, wenn du einen Verzeichnisnamen als Kommando eingibst? Das geht ja in Windows ebensowenig.

      Aber wenn die Windows-Virtualisierung schon so freundlich ist, die Windows-Partitionen in /mnt bereitzustellen, dann müsste ja ein

      ls /mnt/z
      

      den Inhalt der Windows-Partition Z: zeigen.

      Live long and pros healthy,
       Martin

      --
      Für welches Tier mühen wir uns am meisten ab? - Für die Katz'.
      1. That's the idea.Das Linux-Subsystem ist quasi ein komplett isolierter virtueller PC, der mit seinem Hostsystem nur über ein virtuelles Netzwerk kommuniziert.

        Ich widerspreche Dir ungern. Es ist eher eine „chroot-Umgebung“.

        Das "Wurzel"-Verzeichnis der Ubuntu-App liegt aus Windows-Sicht in einem Ordner, dessen Name

        %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

        zumindest ähnelt. Einfach mal suchen...

        1. Hallo,

          That's the idea.Das Linux-Subsystem ist quasi ein komplett isolierter virtueller PC, der mit seinem Hostsystem nur über ein virtuelles Netzwerk kommuniziert.

          Ich widerspreche Dir ungern. Es ist eher eine „chroot-Umgebung“.

          es ist keine echte Virtualisierung?? - Dann gehe ich zwei Schritte zurück und empfehle, das Linux-Subsystem für Windows zu ignorieren und stattdessen etwas Sauberes wie z.B. VirtualBox zu verwenden.

          Das "Wurzel"-Verzeichnis der Ubuntu-App liegt aus Windows-Sicht in einem Ordner, dessen Name

          %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

          zumindest ähnelt. Einfach mal suchen...

          Oh, ich ahne Übles.

          Live long and pros healthy,
           Martin

          --
          Für welches Tier mühen wir uns am meisten ab? - Für die Katz'.
          1. es ist keine echte Virtualisierung??

            Versuch mal in der Ubuntu-App etwas wie lsblk. Da kommt prompt eine Beschwerde. Da ist nichts virtualisiert - es ist eine „Krücke“.

            wie z.B. VirtualBox

            Ich habe aktuell ganz gute Erfahrungen mit dem hauseigenen HyperViser gemacht. Ab Windows 10 Pro kostenlos installierbar.

            https://docs.microsoft.com/de-de/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

            (Tipp: Die einfachere Methode über das GUI steht weiter unten)

            1. Versuch mal in der Ubuntu-App etwas wie lsblk. Da kommt prompt eine Beschwerde. Da ist nichts virtualisiert - es ist eine „Krücke“.

              https://docs.microsoft.com/de-de/windows/wsl/wsl2-mount-disk

              1. Das löst nur eines der Probleme. Ein weiteres sind neuerdings die Dienste... systemctl wird nicht benutzt.

                Ich habe deshalb „Versuch mal in der Ubuntu-App etwas wie lsblk“ notiert.

                Die Ubuntu-App ist ganz nett, aber eben kein komplettes Linux. Entsprechend stößt man auf Probleme sobald man etwas mehr will. Offenbar versucht MS hier nochmal was zu mixen bevor die das mit dem Windows-Kram bleiben lassen und ganz auf Linux umsteigen 🤣

          2. Hallo Martin,

            es ist keine echte Virtualisierung?? - Dann gehe ich zwei Schritte zurück und empfehle, das Linux-Subsystem für Windows zu ignorieren und stattdessen etwas Sauberes wie z.B. VirtualBox zu verwenden.

            Das wußte ich aber voher schon. Und ich wollte auch eigentlich lediglich mein Cygwin ersetzen und da hat das Windows Subsystem schon ein paar Vorteile.

            Jörg

          3. Tach!

            That's the idea.Das Linux-Subsystem ist quasi ein komplett isolierter virtueller PC, der mit seinem Hostsystem nur über ein virtuelles Netzwerk kommuniziert.

            Ich widerspreche Dir ungern. Es ist eher eine „chroot-Umgebung“.

            es ist keine echte Virtualisierung??

            Seid ihr sicher, dass ihr beide von der selben Version des WSL sprecht? Da gibt es erhebliche Unterschiede zwischen Version 1 und 2.

            Aber ja, das Ziel ist eine Interoperabilität der beiden Systeme. Man kann Windows- und Linux-Kommandos in einer Zeile mischen. Eine vollständige Isolation ist da vermutlich eher hinderlich.

            Das "Wurzel"-Verzeichnis der Ubuntu-App liegt aus Windows-Sicht in einem Ordner, dessen Name

            %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

            zumindest ähnelt. Einfach mal suchen...

            Oh, ich ahne Übles.

            Zumindest für WSL 2 sollte man ignorieren, wo die Dateien physisch liegen und stattdessen von Windows aus über das Share \\wsl$\ gehen.

            dedlfix.

            1. Seid ihr sicher, dass ihr beide von der selben Version des WSL sprecht? Da gibt es erhebliche Unterschiede zwischen Version 1 und 2.

              Du hast Recht. Ich habe gerade mal das Update von WSL1 auf WSL2 gemacht. Jetzt ist es eine virtuelle Maschine, deren Platte in

              %LOCALAPPDATA%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

              liegt und ext4.vhdx heisst. Offenbar die also die selbe Technik wie bei HyperVi.

              Warum das Ubuntu dann im HyperVi nicht auftaucht wäre aber auch interessant…

              1. Du hast Recht. Ich habe gerade mal das Update von WSL1 auf WSL2 gemacht. Jetzt ist es eine virtuelle Maschine, deren Platte in

                Ich hab mich da gleich hinten dran gehängt und auch auf Version 2 upgedatet.

                Jörg

              2. liegt und ext4.vhdx heisst. Offenbar die also die selbe Technik wie bei HyperVi.

                Scheint eine 256GB Partition zu sein, die aber nur knapp über 1GB Festplattenplatz als ISO einnimmt.

                Frage: Gibt es eine Möglichkeit, mit Windows Dateien ins Home-Verzeichnis zu kopieren bzw. (z.b. per Editor) darauf zuzugreifen?

                Jörg

                1. Tach!

                  Gibt es eine Möglichkeit, mit Windows Dateien ins Home-Verzeichnis zu kopieren bzw. (z.b. per Editor) darauf zuzugreifen?

                  Wenn du WSL 2 nimmst, dann so wie bereite am Ende meines Postings angedeutet.

                  Ansonsten ist das kein neues Problem. Man findet die Lösungswege dazu recht einfach.

                  dedlfix.

                  1. Hi dedlfix, enn du WSL 2 nimmst, dann so wie bereite am Ende meines Postings angedeutet.

                    Hatte ich überlesen, danke.

                    Jörg

                2. Frage: Gibt es eine Möglichkeit, mit Windows Dateien ins Home-Verzeichnis zu kopieren

                  Würde ich nicht machen. Statt dessen würde ich z.B. /mnt/C/Users/joerg/webseiten in das Linux mounten.

                  Dazu kannst und musst Du Folgendes anpassen (Ich habe gerade kein Windows zur Hand...)

                  cd 
                  mkdir webseiten
                  echo "/mnt/C/Users/joerg/webseiten /${HOMEDIR}/webseiten none user,bind 0 0" | sudo tee /etc/fstab 
                  mount "/${HOMEDIR}/webseiten"
                  

                  Dann kannst Du künftig die Webseiten unter Windows bearbeiten(¹) und mit Linux einfacher(²)mit rsync syncronisieren.


                  ¹) Wozu auch immer DAS gut sein soll.

                  ²) eigentlich hält Dich nichts davon ab, /mnt/C/Users/joerg/webseiten direkt zu syncronisieren. Schreib Dir einfach ein Skriptchen nach /${HOMEDIR}/bin/ oder lege Dir einen Alias in /${HOMEDIR}/.bashrc an.

                  1. Hi Raketenwilli,

                    Frage: Gibt es eine Möglichkeit, mit Windows Dateien ins Home-Verzeichnis zu kopieren

                    Würde ich nicht machen. Statt dessen würde ich z.B. /mnt/C/Users/joerg/webseiten in das Linux mounten.

                    Nein, meine Scripte öliegen auf Z schon ganz gut, insb. weil Z verschlüsselt ist und ich auch bei Verlust meines Rechners den Quellcode geschützt wissen will.

                    ²) eigentlich hält Dich nichts davon ab, /mnt/C/Users/joerg/webseiten direkt zu syncronisieren. Schreib Dir einfach ein Skriptchen nach /${HOMEDIR}/bin/ oder lege Dir einen Alias in /${HOMEDIR}/.bashrc an.

                    Ich habe mir längst ein Bash-Script geschrieben, was alle nötigen rsync-Arbeiten erledigt. SSh-Keys sind auch generiert, das läuft also schon ganz gut.

                    Mir ging es nur darum, dass ich das Bash-Script ins Home-Verzeichnis lege, aber über meinen (Windwos)Editor leicht ändern kann, falls ich nicht alle rsync-Arbeiten, sondern nur einige hieraus benötige.

                    Und da was dedlfix Tip sehr gut. Läuft aölles wie gewünscht.

                    Aber ich habe eine andere Frage:

                    Ich weiß z.b., dass Android Studio auf Andoid etwas weniger resourcenhungrig läuft als auf Windowa. Könnte ich mir AS also nun auch in meine WSL2-Partition über Android installieren?

                    Jörg

                    1. Könnte ich mir AS also nun auch in meine WSL2-Partition über Android installieren?

                      Installieren geht.

                      Aber dann brauchts Du unter Windows einen X-Server (ich hab xming), musst xauth installieren, den ssh-Dienst unter Ubuntu zum Laufen bekommen (hier hat das Anlegen von /run/sshd und start mit sudo /usr/sbin/sshd geholfen, die virtuelle Maschine via Putty connecten und dabei nicht vergessen, das x-Forwarding zu verlangen.

                      Wahrscheinlich braucht Android Studio noch ein paar Sachen mehr... und was die Ressourcen betrifft ... Du startest eine komplette virtuelle Maschine um Ressourcen zu sparen?

                      Du kommst also besser wenn Du Deinen Kram gleich unter Linux erledigst... Auch bezüglich Deiner anderen Anforderungen.

                    2. Nein, meine Scripte liegen auf Z schon ganz gut,

                      Dann kannst Du halt /mnt/Z/irgendwas nach $HOMEDIR/webseiten mounten. Das sind hier Beispiele.

                      insb. weil Z verschlüsselt ist und ich auch bei Verlust meines Rechners den Quellcode geschützt wissen will.

                      Du wolltest sogar Dateien kopieren... Zur Erinnerung:

                      Frage: Gibt es eine Möglichkeit, mit Windows Dateien ins Home-Verzeichnis zu kopieren

                      Um was für Dateien es geht kann ich ja nicht riechen. Dir aber die Auskunft geben, dass Du das gar nicht musst, weil mount -o bind funktioniert.

            2. Aber ja, das Ziel ist eine Interoperabilität der beiden Systeme. Man kann Windows- und Linux-Kommandos in einer Zeile mischen. Eine vollständige Isolation ist da vermutlich eher hinderlich.

              Du hast den Link für die Beantwortung Deiner Vermutung selber gegeben:

              "*Es wird empfohlen, WSL 2 zu verwenden, da es eine schnellere Leistung und 100%ige Kompatibilität von Systemaufrufen bietet. Es gibt jedoch einige spezielle Szenarien, in denen Sie möglicherweise WSL 1 verwenden möchten. Erwägen Sie in folgenden Fällen die Verwendung von WSL 1:

              Ihre Projektdateien müssen im Windows-Dateisystem gespeichert werden. WSL 1 bietet schnelleren Zugriff auf Dateien, die von Windows aus bereitgestellt werden. Wenn Sie Ihre WSL Linux-Verteilung verwenden, um auf Projektdateien im Windows-Dateisystem zuzugreifen, und diese Dateien nicht im Linux-Dateisystem gespeichert werden können, erzielen Sie mithilfe von WSL 1 eine schnellere Leistung über die Betriebssystemdateien. Ein Projekt, das die Kreuzkompilierung mithilfe von Windows- und Linux-Tools für dieselben Dateien erfordert. Die Dateileistung über Windows- und Linux-Betriebssysteme hinweg ist in WSL 1 schneller als in WSL 2. Wenn Sie also Windows-Anwendungen für den Zugriff auf Linux-Dateien verwenden, erzielen Sie derzeit eine schnellere Leistung mit WSL 1.*"

              Quelle: https://docs.microsoft.com/de-de/windows/wsl/compare-versions

              Danke auf jeden Fall für die Aufklärung.

              1. Ihre Projektdateien müssen im Windows-Dateisystem gespeichert werden. WSL 1 bietet schnelleren Zugriff auf Dateien, die von Windows aus bereitgestellt werden. Wenn Sie Ihre WSL Linux-Verteilung verwenden, um auf Projektdateien im Windows-Dateisystem zuzugreifen, und diese Dateien nicht im Linux-Dateisystem gespeichert werden können, erzielen Sie mithilfe von WSL 1 eine schnellere Leistung über die Betriebssystemdateien.

                Naja. /mnt/c ist (jedenfalls) bei mir auch nach der Umstellung auf WSL2 da. Du kannst also bei dieser Vorgehensweise bleiben.

          4. Dann gehe ich zwei Schritte zurück und empfehle, das Linux-Subsystem für Windows zu ignorieren und stattdessen etwas Sauberes wie z.B. VirtualBox zu verwenden.

            Wenn man es langsamer und umständlicher haben möchte, dann ist das ein super Tip!

  2. Hallo Forum,

    habe mir jetzt unter Win10 ein Ubuntu Linux-Subsystem erstellt.

    Hallo Forum,

    also, ich habe ein WSL2 auf meinem Win10 Rechner.

    Habe ich das richtig verstanden, dass dieses Subsystem eine virtuelle 256GB-Partition auf dem Windows-Rechner installiert, diese aber als iso speichert und somit viel weniger Platz einnimmt?

    Für mich stellen sich da einige Fragen:

    1. Habe ich das überhaupt korrekt verstanden?
    2. Was, wenn ich nur wenige GB in Linux benötige, aber mehr als GesamtplatzSSD-256GB für den Rest benötigen würde?

    Also, sind diese (falls korrekt verstanden) 256GB fix oder variabel? Nach oben hin, habe ich gelesen, kann der Speicherplatz vergrößert werden. Was aber, wenn ich für Win10 mehr Platz brauche? Geht mir dann der Speicherplatz aus oder verkleinert sich die nicht voll ausgeschöpfte Linuxreserve?

    Jörg

    1. Habe ich das richtig verstanden, dass dieses Subsystem eine virtuelle 256GB-Partition auf dem Windows-Rechner installiert, diese aber als iso speichert und somit viel weniger Platz einnimmt?

      Fast richtig. Die virtuelle „Festplatte" wird als eine oder mehrere Dateien ablegt - aber dabei wird (wenn einstellbar und eingestellt) der unbelegte Speicher einfach weggelassen. Ob aktuell nicht belegter Speicherplatz hierbei als unbelegt erkannt werden kann hängt wohl vom Host und vom Client ab und ist ggf. der Dokumentation von Hyperviser, KVM/QEmu VMWare, Oracle Virtual Box und so weiter zu entnehmen und manchmal wohl auch von der Installation vom Programmen (e.g. vmware-tools) auf den Client (der virtuellen Maschine) abhängig.

      Wie das Hostsystem darauf reagiert, wenn es die virtuelle Festplatte nicht mehr vergrößern kann habe ich auch noch nicht probiert. Das Clientsystem würde wohl unter der Annahme eines Plattendefektes zusammenbrechen - wenn denn das Hostsystem dieses nicht rechtzeitig anhalten würde. (Das „Anhalten und auf Problemlösung warten“ habe ich bei VM-Ware schon gesehen und vermute das als sinnvolles Verhalten aller Virtualisierungsslösungen)

      1. Danke für die Erklärung 😀

        Gibt es denn für mich eine Möglichkeit in WSL2, die Größe der virtuellen Festplatte von 256GB zum Beispiel auf 50GB herabzusetzen?

        Jörg

        1. Danke für die Erklärung 😀

          Gibt es denn für mich eine Möglichkeit in WSL2, die Größe der virtuellen Festplatte von 256GB zum Beispiel auf 50GB herabzusetzen?

          Jörg

          Ich habe gesucht und wohl(!) ein Intrument zur Verkleinerung der Datei gefunden:

          https://github.com/microsoft/WSL/issues/4699#issuecomment-635673427

          Dort die BOX unterhalb von "BELOW UNTESTED!!"

          Das bedeutet, dass der Auto selbst aussagt, dass er das nicht probiert hat. Mach also vorher unbedingt eine Sicherheitskopie der Datei.

          Ansonsten steht dort noch ein Link zur offiziellen Dokumentation von Microsoft...

          1. @Jörg

            Hat das geklappt? Es wäre gut, Du würdest das a) für mich (weil ich lange nach der Lösung gesucht habe) und für die Nachwelt (das Problem hast nicht nur Du) wissen…