Debian Bookworm、systemd、およびEXT4クォータはどのように機能しますか?

Debian Bookworm、systemd、およびEXT4クォータはどのように機能しますか?

私は新しいDebian 12システムを持っていて、EXT4ファイルシステムクォータをオンにして適用しようとしています。私はmanRed Hatで次のことをたくさん読んでいます。https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_file_systems/limiting-storage-space-usage-on-ext4-with-quotas_managing-file-systems

私はそれを動作させることはできませんし、数時間努力した後、あまりにも混乱しています。これを行うための合理的な方法があるのか​​、それとも何か抜けているのかわかりません。ループファイルで試してみましょう。

vagrant@bookworm:~$ sudo dd status=progress if=/dev/zero of=ext4_fs bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.595179 s, 1.8 GB/s

vagrant@bookworm:~$ sudo mkfs.ext4 ext4_fs 
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done                            
Creating filesystem with 256000 4k blocks and 64000 inodes
Filesystem UUID: 2d5eedba-eada-4b9f-ba88-e182b3ff24fa
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

vagrant@bookworm:~$ sudo tune2fs -O quota ext4_fs 
tune2fs 1.47.0 (5-Feb-2023)

vagrant@bookworm:~$ mkdir mountpoint
vagrant@bookworm:~$ sudo mount ext4_fs mountpoint/
vagrant@bookworm:~$ ls mountpoint/
lost+found

vagrant@bookworm:~$ sudo quotaon -v -p mountpoint/
group quota on /home/vagrant/mountpoint (/dev/loop0) is on (accounting)
user quota on /home/vagrant/mountpoint (/dev/loop0) is on (accounting)
project quota on /home/vagrant/mountpoint (/dev/loop0) is off

今まではそんなに良くなった。今aquota.userでもドキュメントがaquota.group必要ですか?その場合は、以下を使用して自動的に作成する必要がありますquotacheck

vagrant@bookworm:~$ sudo quotacheck -cugm mountpoint/
quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option.

奇妙な。システムを再インストールしたときにroコマンドが起動しましたが、正常に動作しなかったため、次のファイルを作成しました。

vagrant@bookworm:~$ sudo quotacheck -cugm mountpoint/
quotacheck: Cannot create new quotafile /home/vagrant/mountpoint/aquota.user.new: Read-only file system
quotacheck: Cannot initialize IO on new quotafile: Read-only file system

クォータを試したら、追加して再enforcing起動します。usrquotafstab

/home/vagrant/ext4_fs /home/vagrant/mountpoint ext4 rw,nodev,nosuid,defaults,usrquota 0 0

クォータが適用されましたが、aquota.userファイルが見つからないため実行できませんquotacheck。これでsystemdミックスに追加すると失敗しますquotaon.service

vagrant@bookworm:~$ sudo systemctl status quotaon.service 
× quotaon.service - Enable File System Quotas
     Loaded: loaded (/lib/systemd/system/quotaon.service; static)
     Active: failed (Result: exit-code) since Sun 2023-09-24 15:18:07 UTC; 8min ago
       Docs: man:quotaon(8)
    Process: 359 ExecStart=/sbin/quotaon -aug (code=exited, status=1/FAILURE)
   Main PID: 359 (code=exited, status=1/FAILURE)
        CPU: 1ms

Sep 24 15:18:07 bookworm systemd[1]: Starting quotaon.service - Enable File System Quotas...
Sep 24 15:18:07 bookworm quotaon[359]: quotaon: using . on /dev/loop0 [/home/vagrant/mountpoint]: File exists
Sep 24 15:18:07 bookworm systemd[1]: quotaon.service: Main process exited, code=exited, status=1/FAILURE
Sep 24 15:18:07 bookworm systemd[1]: quotaon.service: Failed with result 'exit-code'.
Sep 24 15:18:07 bookworm systemd[1]: Failed to start quotaon.service - Enable File System Quotas.

そしてまた:

vagrant@bookworm:~$ sudo systemctl status systemd-quotacheck.service
● systemd-quotacheck.service - File System Quota Check
     Loaded: loaded (/lib/systemd/system/systemd-quotacheck.service; static)
     Active: active (exited) since Sun 2023-09-24 15:18:07 UTC; 12min ago
       Docs: man:systemd-quotacheck.service(8)
    Process: 354 ExecStart=/lib/systemd/systemd-quotacheck (code=exited, status=0/SUCCESS)
   Main PID: 354 (code=exited, status=0/SUCCESS)
        CPU: 3ms

Sep 24 15:18:07 bookworm systemd[1]: Starting systemd-quotacheck.service - File System Quota Check...
Sep 24 15:18:07 bookworm systemd[1]: Finished systemd-quotacheck.service - File System Quota Check.

2023年にディスククォータを設定する賢明な方法は何ですか?

ありがとうございます。

ベストアンサー1

クォータはext4トランザクションを介して内部で自動的に処理されるため、ext4のクォータファイルは必要ありません。してはいけない各ユーザー/グループ/プロジェクトが所有する物理ファイルと同期されません。これが発生すると、e2fsckは問題を解決します。

おすすめ記事