ファイルを自動的に移動し、パーティションのサイズを変更しますか?

ファイルを自動的に移動し、パーティションのサイズを変更しますか?

私はちょっと変わった状況にあります。最近、Debian から Arch への切り替えに取り組んでおり、両方のホーム パーティションが同じパーティションを指しています (ユーザー名は異なるので、問題はありません)。

私がやりたいことは、次の 2 つのいずれかです。

  1. arch に debian と同じユーザー名とグループでユーザーを設定すると、すべてがうまく動作するようになります。または
  2. ホームフォルダ間で共有したいファイルを独自のパーティションに移動し、fstab でマウントします。

2 つ目のケースでは、約 150 GB のファイルを独自のパーティションに移動する必要がありますが、ホーム パーティションには約 15 GB の空き領域があります。したがって、10 GB の ext4 パーティションを作成し、約 10 GB のファイルを移動し、パーティションを再度拡張し、ファイルを再度移動し、すべてのファイルを独自のパーティションに移動するまで、この操作を繰り返す必要があります。

手動で行うこともできますが、「10GB 程度のファイルをここからそこに移動し、サイズを変更して、ファイルがなくなるまで繰り返します」と指示できれば簡単になります。

そんなことが可能でしょうか?

答え1

/home/ディレクトリ内のデータと設定ファイルすべきこれは OS ではなくアプリケーションに関係するため、ディストリビューションに依存しません。一部のディストリビューションでは、/home/robたとえば、異なるフォルダー名を使用するようにアプリケーションのバージョンを調整する場合があります。ただし、フォルダーの名前を変更したり、シンボリックリンクを追加したりするだけで、アプリケーションが期待するものと一致するはずです。

したがって、debian ホーム ディレクトリにすでに存在するファイルとディレクトリに簡単にアクセスできるユーザーを arch 上に作成することは、それほど問題にはならないはずです。

まず最初に、Debian ユーザーの UID を調べ、これが arch で同じであることを確認する必要があります。UID は「実際の」ユーザー ID であり、ログインに使用するのは uid の単なる人間による表現です。arch ユーザーが 'rob' で、rob のホーム ディレクトリが次のとおりだとします/home/rob

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

uid と gid (グループ ID) は 3 列目と 4 列目です。したがって、このフォルダーは uid 1000 と gid 1000 によって所有されています。Debian 側では、これは passwd でよく知られているユーザー名とグループ名に対応します。

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

この場合、グループ名も「rob」であることがわかります。これはディストリビューションの選択です。一部のディストリビューションでは、デフォルトで同じ名前のプライマリ グループを持つユーザーが作成され、一部のディストリビューションではグループusers(多くの場合、gid 100) が作成され、これがプライマリになります。これを整理する点では、特にあなたが唯一のユーザーである場合は、それほど重要ではありません。

usersarch が何をするのかは思い出せませんが、 gid 100 のグループを作成するものと想定します。

したがって、新しいユーザーを作成しrob、そのユーザーをフォルダーにポイントして、正しい uid で設定されていることを確認する必要があります。

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

または、最初に rob のグループを作成する場合は、次のようにします。

$ adduser --group --gid 1000 rob

それから

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

次にrobアカウントのパスワードを設定します

$ passwd rob

ログインすると、Arch の場合と同じようにアクセスできるはずです。

答え2

オプション1はうまくいく可能性が高いです。uidとgidを一致させるだけです。とを使用して、groupadd -gDebianuseradd -uで見つけたものと一致する手動で選択したuidとgidでユーザーデータベースに追加します。id -a

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

うまくいけば、リストには非特権ユーザー アカウントの uid と gid のみが含まれており、他のシステムの uid と gid は正しい名前で報告されるか、名前のない番号として報告されます。同じ uid または gid が 2 つの異なる名前でリストに 2 回表示される場合は、状況はより複雑になります。

名前なしで報告されたものについては、 と を使用してgroupadd -g gid groupuseradd -u uid -g gid username名前を付けてユーザー データベース エントリを作成します。次に、 を実行して、passwd username作成したユーザーのパスワードを設定します。

関連情報