udisksctlを使用した書き込み可能ファイルシステムの作成

udisksctlを使用した書き込み可能ファイルシステムの作成

ディスク不足をテストするために、ファイルベースのサイズが制限されたファイルシステムを次のように設定してみました。

$ dd if=/dev/zero of=file.fs bs=1MiB count=1
$ mkfs.ext4 file.fs
$ udisksctl loop-setup -f file.fs
  Mapped file file.fs as /dev/loop1.
$ udisksctl mount --options rw -b /dev/loop1
  Mounted /dev/loop1 at /media/myuser/29877abe-283b-4345-a48d-d172b7252e39
$ ls -l /media/myuser/29877abe-283b-4345-a48d-d172b7252e39/
  total 16
  drwx------ 2 root root 16384 Dec  2 22:08 lost+found

しかし、ご覧のとおり、ルートでのみ書くことができます。コマンドを実行しているユーザーが書き込めるようにするにはどうすればよいですか?

chown「ジョブは許可されていません」というメッセージも表示されるため、できませんchmod

udisksctlのいくつかのオプションを試してみましたが、-o uid=<id>許可されていないインストールオプションでエラーが発生しました。

通常のユーザーとして実行できる必要があるため、rootまたはsudoは使用できません。

Ubuntu 22.04.1を使用しています。

ベストアンサー1

はい、少し不機嫌そうです:) しかし、この問題を解決することができます:

mkfs.ext4ファイルシステムの初期内容を含むディレクトリを指定するオプションを使用します-d directory/。後で入力するディレクトリを既に知っている場合は、良い開始点になります。

mkfs.xfsサポート-p protofile;これがまさにあなたが望むものかもしれません。ファイルにはmyprotofile次のコンテンツのみが含まれます。

thislinejustforbackwardscompatibility/samefornextline
1337 42
d--777 1234 5678

最初の行は以前のバージョンとの互換性のための文字列なので無視されます。 2行目には無視される2つの数字を含める必要があります。 (man mkfs.xfs私の頭の上で覚えているよりも詳細を参照してください。)

3行目には、filemode uid gidルートディレクトリを記述するタプルが含まれています。 1234を目的のユーザーIDに置き換え、5678を希望のグループIDに置き換えます。

フォローアップ

mkfs.xfs -p myprotofile -f file.fs

動作する必要があります(ただし、デフォルト設定の場合、イメージファイルのサイズは16 MB以上でなければなりませんmkfs.xfs)。

dd if=/dev/zero of=file.fs bs=1MiB count=16 
mkfs.xfs -p myprotofile -f file.fs
udisksctl loop-setup -f file.fs

私のシステムで動作し、自動的にファイルシステムrwをマウントします(しかし、これは必ずしもあなたのシステムに当てはまるわけではありません--options rw

おすすめ記事