web-dev-qa-db-ja.com

ルートファイルシステムは、GentooLinuxの起動時に読み取り専用でマウントされます

私はGentooLinuxを使用していますが、しばらくの間、ルートファイルシステムは起動時に読み取り専用でマウントされます。明らかな理由で、ほとんどのサービスが正しく起動しないため、これは非常に面倒です(/ var用に別のファイルシステムを使用していません)。システムが起動したら、ログインし、ルートファイルシステムを読み取り/書き込みで再マウントし、/ etc/mtabを修正し、他のすべてのファイルシステムを/ etc/fstabからマウントしてから、不足しているすべてのデーモンを起動する必要があります。読み取り専用ファイルシステムでシステムを適切に実行する方法があることは知っていますが、書き込み可能なルートファイルシステムの古い動作を復元したいと思います。

奇妙なことに、mount / -o remount,rwを実行した後、ファイルシステムはエラーなしで書き込み可能モードでマウントされます。 fsckに問題があると思われましたが、パーティションの自動ファイルシステムチェックを無効にしました(tune2fs -c0 -i0)。

Dmesgを実行すると、これらの行だけがパーティションについて言及していますが、/ var/logが書き込み可能ではないため、何かが失われるかどうかはわかりません。

EXT3-fs (sda5): mounted filesystem with writeback data mode</code>  
EXT3-fs (sda5): using internal journal

/ etc/fstabの行は次のようになります。

/dev/sda5 / ext3 noatime 0 1

私はカーネル2.6.34-gentoo-r6を使用しています(以前の2.6.31カーネルにも同じ問題がありました)。 genkernel3.4.10.906を使用して作成しました。私のgrub構成は次のようになります。

title=Gentoo Linux (2.6.34-gentoo-r6)
root (hd0,0)
kernel /kernel-genkernel-x86_64-2.6.34-gentoo-r6 root=/dev/ram0 real_root=/dev/sda5 vga=792 CONSOLE=/dev/tty1 resume=/dev/sda6
initrd /initramfs-genkernel-x86_64-2.6.34-gentoo-r6

それとは別に、それが重要な場合は、openrc0.6.3でbaselayout2.0.0を実行します。 sysvinit 2.87-r3もインストールされていますが、実際に使用されているかどうかはわかりません。

Dumpe2fsの出力は次のとおりです。

Filesystem volume name:   hd-root
Last mounted on:          <not available>
Filesystem UUID:          387432ca-2464-4c61-ba15-11c4af1c0418
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              1528912
Block count:              6104692
Reserved block count:     0
Free blocks:              413799
Free inodes:              674036
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1022
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8176
Inode blocks per group:   511
Filesystem created:       Tue Dec  9 14:48:56 2008
Last mount time:          Mon Sep 27 00:00:15 2010
Last write time:          Sun Sep 26 23:55:12 2010
Mount count:              39
Maximum mount count:      -1
Last checked:             Sun Sep 26 23:51:51 2010
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Journal inode:            8
First Orphan inode:       698281
Default directory hash:   tea
Directory Hash Seed:      4229715b-4ad1-4285-940b-9960db1cb4e1
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x003d9991
Journal start:            1

何がこの問題を引き起こす可能性があるのか​​わかりません。エラーメッセージが見つからず、インターネットを検索すると、ルートファイルシステムを意図的にマウントする方法のマニュアルしか見つかりません。

5
cdauth

問題の解決策は予想よりも簡単です。どうやらbaselayout2には、ルートファイルシステムの読み取り/書き込みを再マウントするだけのrootというサービスがあります。

ブートランレベルにこのサービスがなかった理由は、おそらくかなり早い段階でbaselayout 2に更新したためであり、おそらくこのサービス(および他のいくつかのサービス)は後で導入されました。次のサービスは現在私のブートランレベルにあり、すべてが機能します。

bootmisc
consolefont
device-mapper
dmcrypt
fsck
hostname
hwclock
keymaps
localmount
modules
net.lo
netmount
network
procfs
root
svscan
swap
sysctl
sysfs
termencoding
urandom
4
cdauth

ベースレイアウトのバージョンは何ですか?

emerge -pv baselayout udev

Ext3サポートはどこにありますか?カーネル、またはinitrd経由のモジュール?

1
kagali-san