kimura270
Posts: 1
Joined: Mon Oct 22, 2018 9:04 am

ext4のジャーナリング機能のOFF/ONについて

Mon Oct 22, 2018 10:13 am

ある記事を見て、SDカードの寿命を考慮してRaspbian(Jessie)にてext4のジャーナリング機能を外しました。

1.他の端末にSDカードをマウント(/dev/sda2)し、以下コマンドでジャーナリング機能停止
pi@localhost:~$ sudo tune2fs -O ^has_journal /dev/sda2
tune2fs 1.42.5 (29-Jul-2012)
pi@localhost:~$ sudo sync

2.SDカードで起動し、「has_journal」が無くなっていることを確認
pi@localhost:~$ sudo tune2fs -l /dev/mmcblk0p2 | grep features
Filesystem features: ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file uninit_bg dir_nlink extra_isize


これにより問題が発生し、ext4のジャーナリング機能を復活させたいのですが、器物が遠隔地にありSDカードを他の端末にマウントし「tune2fs -O has_journal」を実行することができません。
再起動などはネットワーク越しにできますが、起動スクリプト内などでこれを実行させることはできますでしょうか?

matoken
Posts: 36
Joined: Sat Jan 05, 2013 10:30 am
Location: kagoshima japan
Contact: Website Google+ Twitter

Re: ext4のジャーナリング機能のOFF/ONについて

Fri Jun 07, 2019 3:48 pm

時間が経っているのでもう対処済みでしょうが最近似たようなこと?(F2FS の resize.f2fs を shutdown 時に実行)をしていたのでちょっと試してみました.

手元の環境では / に mount した状態でも journal をon にすることが出来ました.
もし駄目な場合 `/lib/systemd/system-shutdown` 以下に journal を操作する script を用意することで journal を操作できました.

journalが有効なのを確認

Code: Select all

$ sudo tune2fs -l /dev/mmcblk0p2 | grep features
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file dir_nlink extra_isize
journal をoff にするshutdown script を設定して再起動(/のumount後に実行される)

Code: Select all

$ echo '#!/bin/sh
tune2fs -O ^has_journal /dev/mmcblk0p2' | sudo tee /lib/systemd/system-shutdown/rootfs_journal_off.sh
$ sudo chmod +x /lib/systemd/system-shutdown/rootfs_journal_off.sh
$ sudo reboot
再起動後journal がoff になっているのを確認

Code: Select all

$ sudo tune2fs -l /dev/mmcblk0p2 | grep features
Filesystem features:      ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file dir_nlink extra_isize
journal をoff にするshutdown script を削除

Code: Select all

$ sudo rm /lib/systemd/system-shutdown/rootfs_journal_off.sh
journal をon にして確認

Code: Select all

$ sudo tune2fs -O has_journal /dev/mmcblk0p2
tune2fs 1.43.4 (31-Jan-2017)
Creating journal inode: done
$ sudo tune2fs -l /dev/mmcblk0p2 | grep features
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file dir_nlink extra_isize
もしうまく行かない場合journal をon にするshutdown script を設定して再起動

Code: Select all

$ echo '#!/bin/sh
tune2fs -O has_journal /dev/mmcblk0p2' | sudo tee /lib/systemd/system-shutdown/rootfs_journal_on.sh
$ sudo chmod +x /lib/systemd/system-shutdown/rootfs_journal_on.sh
$ sudo reboot
$ sudo tune2fs -l /dev/mmcblk0p2 | grep features
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file dir_nlink extra_isize
$ sudo rm /lib/systemd/system-shutdown/rootfs_journal_on.sh
試した環境

Code: Select all

$ dpkg-query -W e2fsprogs systemd
e2fsprogs       1.43.4-2
systemd 232-25+deb9u11
$ uname -a
Linux raspberrypi 4.19.42+ #1219 Tue May 14 21:16:38 BST 2019 armv6l GNU/Linux
$ lsb_release -d
Description:    Raspbian GNU/Linux 9.9 (stretch)
$ cat /proc/device-tree/model ;echo
Raspberry Pi Model B Rev 2
Kagoshima Linux User Group : https://kagolug.org/
my site: https://matoken.org
my pi : 1B/1B+/1A/1A+/2B/3B/Zero/Zweo W

Return to “日本語”