Dateien verschieben und Partitionsgröße automatisch ändern?

Dateien verschieben und Partitionsgröße automatisch ändern?

Ich bin in einer etwas merkwürdigen Situation. Ich habe vor Kurzem daran gearbeitet, von Debian auf Arch umzusteigen, und meine Home-Partition für beide verweist auf dieselbe Partition (unterschiedliche Benutzernamen, also ist das kein Problem).

Ich möchte eines von zwei Dingen tun:

  1. Richten Sie auf Arch einen Benutzer mit demselben Benutzernamen und derselben Gruppe wie bei Debian ein, und schon funktioniert alles! ODER
  2. Verschiebe Dateien, die ich zwischen Home-Ordnern teilen möchte, auf ihre eigene Partition und mounte sie mit fstab.

Für die zweite habe ich etwa 150 GB an Dateien, die auf eine eigene Partition verschoben werden müssten, und ich habe etwa 15 GB freien Speicherplatz auf meiner Home-Partition. Ich möchte also irgendwie eine 10 GB große ext4-Partition erstellen, etwa 10 GB an Dateien verschieben, die Partition erneut erweitern, erneut Dateien verschieben usw., bis alle Dateien auf ihre eigene Partition verschoben sind.

Ich kann es manuell machen, aber es wäre einfacher, wenn ich sagen könnte: „Verschiebe ungefähr 10 GB an Dateien von hier nach dort, ändere dann die Größe und wiederhole das, bis ich keine Dateien mehr habe.“

Ist das überhaupt möglich?

Antwort1

Die Daten- und Konfigurationsdateien in den /home/-Verzeichnissensollenist distributionsunabhängig, da es sich auf Anwendungen und nicht auf das Betriebssystem bezieht. Einige Distributionen optimieren ihre Anwendungsversionen möglicherweise, um beispielsweise andere Ordnernamen zu verwenden /home/rob, aber Sie sollten nicht viel mehr tun müssen, als den Ordner umzubenennen oder einen symbolischen Link zu erstellen, damit er den Erwartungen der Anwendung entspricht.

Daher sollte es kein großes Problem sein, auf Arch einen Benutzer zu erstellen, der sofortigen Zugriff auf die Dateien und Verzeichnisse hat, die bereits in den Debian-Home-Verzeichnissen vorhanden sind.

Als erstes müssen Sie die UID des Debian-Benutzers herausfinden und sicherstellen, dass diese auf Arch identisch ist. Die UID ist die „echte“ Benutzer-ID, die, mit der Sie sich anmelden, ist nur eine menschliche Darstellung der UID. Nehmen wir an, Ihr Arch-Benutzer ist „rob“ und Robs Home-Verzeichnis ist /home/rob:

 $ ls -alnd /home/rob
 drwxr-xr-x 94 1000 1000 12288 Jul  3 21:36 /home/rob

Die UID und GID (Gruppen-ID) sind die dritte und vierte Spalte. Dieser Ordner gehört also der UID 1000 und der GID 1000. Auf der Debian-Seite entspricht dies dem Benutzernamen und Gruppennamen, den Sie aus dem Passwd kennen:

$ grep 1000 /etc/passwd
rob:x:1000:1000:,,,,:/home/rob:/bin/bash
$ grep 1000 /etc/group
rob:x:1000:

Sie sehen also, dass der Gruppenname in diesem Fall auch „rob“ ist. Dies ist eine Verteilungsauswahl – einige erstellen standardmäßig Benutzer mit einer primären Gruppe mit demselben Namen, und andere erstellen eine usersGruppe (häufig GID 100) und machen diese zur primären Gruppe. In Bezug auf die Sortierung spielt dies keine große Rolle, insbesondere wenn Sie der einzige Benutzer sind.

Ich kann mich nicht erinnern, was Arch macht, aber ich gehe davon aus, dass es eine usersGruppe mit der GID 100 erstellt.

Wir müssen also nur einen neuen Benutzer erstellen rob, ihn auf den Ordner verweisen und sicherstellen, dass er mit der richtigen UID eingerichtet ist:

$ adduser --home /home/rob --uid 1000 --no-create-home --gid 100 rob

Oder wenn Sie zuerst eine Gruppe für Rob erstellen möchten, gehen Sie wie folgt vor:

$ adduser --group --gid 1000 rob

Dann

$ adduser --home /home/rob --uid 1000 --no-create-home --gid 1000 rob

Legen Sie nun das Passwort für das Rob-Konto fest

$ passwd rob

Und melden Sie sich an, und Sie sollten den gleichen Zugriff haben wie bei Arch.

Antwort2

Option Nr. 1 hat eine gute Chance zu funktionieren. Sie müssen nur dafür sorgen, dass UID und GID übereinstimmen. Verwenden Sie groupadd -gund , useradd -uum sie der Benutzerdatenbank hinzuzufügen, wobei manuell ausgewählte UID und GID mit denen übereinstimmen, die Sie unter Debian mit findenid -a

find /home -printf 'user %u %U\ngroup %g %G\n' | sort -u

Hoffentlich enthält die Liste nur die UIDs und GIDs für Ihre nicht privilegierten Benutzerkonten und die des anderen Systems werden entweder mit den richtigen Namen oder als Nummern ohne Namen gemeldet. Wenn dieselbe UID oder GID zweimal mit zwei unterschiedlichen Namen in der Liste auftaucht, ist die Sache komplizierter.

Für Benutzer, die ohne Namen gemeldet werden, verwenden Sie groupadd -g gid groupund , useradd -u uid -g gid usernameum Datenbankeinträge mit Namen zu erstellen. Führen Sie dann aus, passwd usernameum ein Kennwort für den von Ihnen erstellten Benutzer festzulegen.

verwandte Informationen