🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

4235閲覧

CentOSのxfsでinode番号が重複している理由について

ratetail

総合スコア32

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2019/11/27 23:07

前提・実現したいこと

環境
vmware上
CentOS Linux release 7.7.1908 (Core)

inode番号はファイルシステム毎にユニークという認識なのですが、重複したinode番号があったため
1:「inode番号が重複している」とは何かしらエラーしている状態ということなのか
2:認識が間違っていてinode番号は重複するケースもあるのか、また、重複がある場合はどういう理由なのか
ということが知りたい。

発生している問題・エラーメッセージ

該当のソースコード

「df -hT」 ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs tmpfs 3.9G 3.8M 3.9G 1% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/centos-root xfs 46G 23G 24G 50% / /dev/sda1 xfs 497M 281M 216M 57% /boot tmpfs tmpfs 781M 0 781M 0% /run/user/0 「find / -inum 39914」//inode番号「39914」で3つのファイルが一致する。 /proc/51/ns/uts /sys/firmware/dmi/entries/8-0/handle /home/samba/rescue2_tera.txt 「ll -i /proc/51/ns/」 合計 0 39915 lrwxrwxrwx. 1 root root 0 11月 28 07:01 ipc -> ipc:[4026531839] 39918 lrwxrwxrwx. 1 root root 0 11月 28 07:01 mnt -> mnt:[4026531840] 39913 lrwxrwxrwx. 1 root root 0 11月 28 07:01 net -> net:[4026531956] 39916 lrwxrwxrwx. 1 root root 0 11月 28 07:01 pid -> pid:[4026531836] 39917 lrwxrwxrwx. 1 root root 0 11月 28 07:01 user -> user:[4026531837] 39914 lrwxrwxrwx. 1 root root 0 11月 28 07:01 uts -> uts:[4026531838] 「ll -i /sys/firmware/dmi/entries/8-0/」 合計 0 39914 -r--------. 1 root root 4096 11月 28 07:25 handle 39916 -r--------. 1 root root 4096 11月 28 07:25 instance 39913 -r--------. 1 root root 4096 11月 28 07:25 length 39917 -r--------. 1 root root 4096 11月 28 07:25 position 39918 -r--------. 1 root root 0 11月 28 07:25 raw 39915 -r--------. 1 root root 4096 11月 28 07:25 type 「ll -i /home/samba/rescue2_tera.txt」 39914 -rw-r--r--. 1 root root 2248 6月 27 2017 /home/samba/rescue2_tera.txt

試したこと

該当のパーティションを、別のLiveDVDで起動して、「/dev/mapper/centos-root」に対してxfs_dbを実行し
inode番号を検索したが、1つしか出力されなかった。

「xfs_db /dev/mapper/centos-root」 「blockget -n」 「ncheck -i 39914」 39914 home/samba/rescue2_tera.txt

どのようなことでも結構ですので、ご回答頂ければと思います。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

inode番号は一つのファイルシステム上でユニークになる番号でファイルシステムが異なれば重複することはあります。
"/proc"はprocファイルシステム、"/sys"はsysfsファイルシステムがマウントしているのでそれぞれの間では重複する可能性はあります。
"/proc"と"/sys"は実際は実体のない仮想ファイルなので環境が変わると値が変わると思います。

投稿2019/11/27 23:18

編集2019/11/30 02:03
nomuken

総合スコア1627

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ratetail

2019/11/30 01:46

nomukenさん、otnさん、ご回答ありがとうございます。 質問内容において、先に疑問を満たす内容を投稿していただいたので、こちらをBAとさせていただきます。 >nomukenさん 「ファイルシステム(デバイス)」単位でinode番号はユニークというお話なのですが それは「mountでマウントされているリスト毎においてユニーク」という認識で合っていますでしょうか。 「デバイス」の場合、例えば 「/dev/sda」//HDD自体 「/dev/sda1」//パーティション 「/dev/sda2」//パーティション というものであれば、全て「デバイス」なので デバイス「/dev/sda」自体は1つなので 「/dev/sda1」「/dev/sda2」2つにおいてinode番号は重複しないのだろうか というものが浮かんでしまったため。
nomuken

2019/11/30 02:02

ファイルシステム単位なのでこの場合はパーティションが正しいですね。 パーティションが違えばファイルシステムも違うので重複する可能性があります。 誤解を招くの消しておきます。
nomuken

2019/11/30 02:08

念のため、もう一つ説明しておくと、inode番号はファイルの実体に対して設定されるものです。 一つのファイルシステム上でもハードリンクを使っていると別のファイルでも同一のinode番号を持ちます。 参考記事:https://qiita.com/lnznt/items/6178e1c5f066f22fe9c2
guest

0

dfだと実体の無いファイルシステムが表示されないので、「ファイルシステムは全部でどういう物があるのか」がわかりません。mountコマンドを実行してください。

一例ですが、

sh

1$ mount 2/dev/mapper/vg_artoo-lv_root on / type ext4 (rw) 3proc on /proc type proc (rw) 4sysfs on /sys type sysfs (rw) 5devpts on /dev/pts type devpts (rw,gid=5,mode=620) 6tmpfs on /dev/shm type tmpfs (rw) 7/dev/sda1 on /boot type ext4 (rw) 8none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

の場合、onの後の、

plain

1/ (の下記以外) 2/proc 3/sys 4/dev/pts 5/dev/shm 6/boot 7/proc/sys/fs/binfmt_misc (ちょっとこの行の none の意味がわかりませんが)

がそれぞれ別のファイルシステムです。

投稿2019/11/28 07:18

otn

総合スコア85890

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/11/28 07:26

find に -xdev オプションを付けると、他のファイルシステムを検索しません。 また、ハードリンクがあると、同じinode番号に複数の名前が付きます(別名)。 ls -id /usr /usr/bin/..
ratetail

2019/11/30 01:52 編集

>otnさん 「実体のないファイルシステム」とは「メモリ上に作成されるもの」という認識で合っていますでしょうか? -xdevというオプションがあったのですね。 実行したところ、今回挙がった3件、それぞれのみを検知することが確認できました。 ファイルシステムのnoneについて参考になりそうな情報がありましたので追記させていただきます。 参考「https://wiki.bit-hive.com/north/pg/Filesystem%E3%81%AEnone」 システム側で特に設定されてない場合「none」が返されて表示されるようです。 そしてサイトに書いてあるようにLinuxカーネルが更新された状態なのか 自環境ではnoneは表示されませんでした。
otn

2019/11/30 12:47

>「実体のないファイルシステム」とは「メモリ上に作成されるもの」という認識で合っていますでしょうか? 説明するときに言葉を使い間違ったかもしれません。なんというか、大体そうなのですが、tmpfs はメモリ上ですが、df に出てきます。確かに「実体のない」だと「ディスクじゃない==メモリ上」という意味になっちゃいますね。 「ファイルを保存する目的で使えない」というと、意味が分かりにくいかな。 noneの情報、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問