une2fs:作成日はどの時間帯にありますか?変更できますか?

une2fs:作成日はどの時間帯にありますか?変更できますか?

私はLinuxディストリビューションのインストール期間を確認するためにune2fsを使用してきましたが、タイムゾーンがわからない場合、ここに含まれる日付はあまり役に立ちません。私が使った正確なコマンドはここ、明確にするために:

sudo tune2fs -l /dev/sda3 | grep created | sed 's/.*created\:\s*//g'

ただし、出力は次の形式です。

Fri Jun 23 23:59:22 2017

タイムゾーンは言及されていません。ただし、date次の形式の出力を返します。

Sun Jul 23 17:58:18 AEST 2017

AESTタイムゾーンがどのように言及されているかをご覧ください。マンページを読みました。tune2fs。 Webブラウザの検索ユーティリティを使用して「日付」、「作成」、「時間」を検索しましたが、日付形式のタイムゾーンに言及しているか、手動で設定する方法があるかどうかがわかりませんでした。 DuckDuckGoを実行して「tune2fs date」と「tune2fs timezone」を検索しました。

ベストアンサー1

時間はUnix epoch時間として保存されますs_mkfs_timeスーパーブロック) カレンダーの日付ではなく、時間帯に依存しません。

表示するときは、tune2fsカレンダー/人の日付に変換して、あなたのタイムゾーンに合った表現を提供してください。

UTC時間を取得するには、次のコマンドを実行します。

TZ=UTC0 LC_ALL=C tune2fs -l /dev/sda3 |
  sed -n 's/^Filesystem created: *//p'

これは、tune2fsタイムゾーンがUTC(UTCから0オフセット)であることを示します。

Filesystem created英語で返され、日付がユーザーのロケールに関係なく(将来国際化される場合)、アメリカ英語スタイルで表示されるようにLC_ALL = Cを追加しました。e2fsprogs

スーパーブロックのオフセット0x108にあり、スーパーS_mkfs_timeブロックはブロックデバイス内のオフセット0x400から始まり、エポック時間を手動で取得することもできます。

od -vAn -j 0x508 -N4 < /dev/sda3

好きな形式に変換してください。

$ date --iso-8601=s -d "@$(od -An -j0x508 -N4 -tu4 < /some/device)"
2017-07-23T12:20:22+01:00
$ date -u --iso-8601=s -d "@$(od -An -j0x508 -N4 -tu4 < /some/device)"
2017-07-23T11:20:22+00:00

おすすめ記事