助け合いフォーラム
正解
fsck -N -t ext3 /dev/sda4
解説
fsckコマンドの書式と主なオプションは以下のとおりです。
fsck [オプション] デバイス名
ファイルシステムの種類を指定してチェックを行うには「-t」オプションを使用します。また、実際にチェックは行わず、実行内容のみを確認する場合は「-N」オプションを併用します。
したがって正解は
・fsck -N -t ext3 /dev/sda4
です。
以下は実行例です。
その他の選択肢については以下のとおりです。
・fsck -t ext3 /dev/sd
「-N」オプションが指定されていませんので、誤りです。
この場合は、実際にチェックが実行されます。
・fsck -t -A ext3 /dev/sda4
・fsck -t -N ext3 /dev/sda4
・fsck ext3 /dev/sda4
書式が誤っています。
fsckの-tの指定の要否
この問題の正答である fsck -N -t ext3 /dev/sda4 について、質問させてください。
(質問1)
既に、ext3でフォーマットされている/dev/sda4への操作なので
「-t ext3」は、不要ではないかと思われました。
あえて、「-t ext3」を入れることのメリットは、ございますでしょうか。
(質問2)
このケースで、誤って -t でext3以外を指定して実行してしまった場合
ファイルシステムの破壊など、重大が問題が発生するでしょうか。
ご存じの方がおられたら教えて下さい。
宜しくお願いします。
質問1について:
メリットは「ちゃんと理解している」ことじゃないですかね。対象のファイルシステムとこれからやろうとしてる操作について間違いなく一致していると自信を持って操作できることじゃないかと。
質問2について
重大な問題が発生するかはお手元のRocky環境でやってみたらいいんじゃないでしょうか?検証せずにただ疑問に思ったから質問するだけになるのはあまりよろしくない傾向かと思います。
加えて、問題解説の内容に関する質問ではなく、学習範囲外や検証すれば良いだけのものについてのご質問が多いように感じます。個人的な空き時間を使って検証して回答したりしてますが、無料の検証サポートしてるわけではないので、単なる疑問(別件のPRIの話とか)や「こうやったらどうなるの?」とかはまずご自身で調査検証されることをお勧めします。
で、実際やったらこうなりました。ファイルシステムが何かをチェックして適切なものをfsckが選択しているようです。
[user@localhost ~]$ dd if=/dev/zero of=test.img bs=1M count=100
100+0 レコード入力
100+0 レコード出力
104857600 bytes (105 MB, 100 MiB) copied, 0.233793 s, 449 MB/s
[user@localhost ~]$ mkfs.ext3 test.img
mke2fs 1.45.6 (20-Mar-2020)
Discarding device blocks: done
Creating filesystem with 102400 1k blocks and 25688 inodes
Filesystem UUID: cac064ee-7b69-4e96-849a-c5f84e4eedca
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
[user@localhost ~]$ ls
test.img
[user@localhost ~]$ mkdir mnt
[user@localhost ~]$ sudo mount -t ext3 test.img mnt
[sudo] user のパスワード:
[user@localhost ~]$ mount | grep ext3
/home/user/test.img on /home/user/mnt type ext3 (rw,relatime,seclabel)
[user@localhost ~]$ fsck -N -t ext4 /home/user/test.img
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext3 (1) -- /home/user/test.img] fsck.ext3 /home/user/test.img
[user@localhost ~]$ fsck -N -t ext2 /home/user/test.img
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext3 (1) -- /home/user/test.img] fsck.ext3 /home/user/test.img
[user@localhost ~]$ fsck -N -t ext3 /home/user/test.img
fsck from util-linux 2.32.1
[/usr/sbin/fsck.ext3 (1) -- /home/user/test.img] fsck.ext3 /home/user/test.img
[user@localhost ~]$ ls /usr/sbin/fsck*
/usr/sbin/fsck /usr/sbin/fsck.ext2 /usr/sbin/fsck.ext4 /usr/sbin/fsck.minix /usr/sbin/fsck.vfat
/usr/sbin/fsck.cramfs /usr/sbin/fsck.ext3 /usr/sbin/fsck.fat /usr/sbin/fsck.msdos /usr/sbin/fsck.xfs
蛇足ですが
「-t ext3」は、不要ではないかと思われました。
不要と言われても、学習のためのものだと思われるので、理解できてればこの選択肢自体にはなんの問題もないことはお分かりいただけるかと思います。
コメント
この投稿に対して返信しませんか?
k kz5835
2023/07/31 00:10
arashi1977様 ご回答、有難うございます。おかげ様で理解できました。 当方の検証不足については、申し訳ございませんでした。 宜しくお願いします。