O sistema de arquivos raiz é montado somente para leitura ao inicializar no Gentoo Linux

5

Estou usando o Gentoo Linux e, por algum tempo, o sistema de arquivos raiz é montado somente para leitura na inicialização. Por razões óbvias, isso é muito chato, já que a maioria dos serviços não são iniciados corretamente (eu não uso um sistema de arquivos separado para / var). Depois que o sistema estiver ativo, preciso logar, remontar o sistema de arquivos raiz de leitura / gravação, corrigir / etc / mtab, montar todos os outros sistemas de arquivos a partir do / etc / fstab e, em seguida, inicializar todos os daemons ausentes. Eu sei que existem maneiras de fazer um sistema funcionar corretamente com um sistema de arquivos somente leitura, mas eu prefiro restaurar o antigo comportamento de um sistema de arquivos raiz gravável.

O mais estranho é que depois de executar mount / -o remount,rw , o sistema de arquivos é montado em modo gravável sem nenhum erro. Eu suspeitei de algum problema com o fsck, mas agora desativei as verificações automáticas do sistema de arquivos na partição ( tune2fs -c0 -i0 ).

Quando eu executo o dmesg, somente essas linhas mencionam a partição, embora eu não tenha certeza se algo não foi perdido porque / var / log não é gravável:

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

A linha no / etc / fstab se parece com isso:

/dev/sda5 / ext3 noatime 0 1

Estou usando o kernel 2.6.34-gentoo-r6 (o mesmo problema existia em um kernel 2.6.31 anterior). Eu criei usando o genkernel 3.4.10.906. Minha configuração do grub é assim:

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

Além disso, executo o baselayout 2.0.0 com o openrc 0.6.3, se isso for importante. O sysvinit 2.87-r3 também está instalado, não sei se é realmente usado.

Aqui está a saída de 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

Não tenho ideia do que poderia causar esse problema. Não consigo encontrar nenhuma mensagem de erro, e pesquisando na internet, eu só encontro manuais como montar deliberadamente o sistema de arquivos raiz lido -

    
por cdauth 27.09.2010 / 02:02

2 respostas

4

A solução para o problema é mais fácil que o esperado. Aparentemente, no baselayout 2, existe um serviço chamado root que apenas remonta a leitura e escrita do sistema de arquivos raiz.

A razão pela qual eu não tinha este serviço no meu nível de execução de inicialização é provavelmente que eu atualizei para baselayout 2 bem cedo, e provavelmente esse serviço (e vários outros) foi introduzido mais tarde. Os seguintes serviços estão no meu runlevel de inicialização agora e tudo funciona:

bootmisc
consolefont
device-mapper
dmcrypt
fsck
hostname
hwclock
keymaps
localmount
modules
net.lo
netmount
network
procfs
root
svscan
swap
sysctl
sysfs
termencoding
urandom
    
por 04.11.2010 / 02:20
1

Qual é a sua versão baselayout?

emerge -pv baselayout udev

Onde o suporte ext3 está localizado? No kernel, ou módulo via initrd?

    
por 27.09.2010 / 03:41