Como a montagem determina as opções de montagem padrão para sistemas de arquivos recém-conectados?

0

As coisas ficam tediosas rapidamente quando se joga com uma ferramenta enorme como mount . Com diferentes tipos de sistema de arquivos e diferentes configurações para cada sistema de arquivos, mount foi o teste do tempo. Gostaria de saber como mount sabe quais configurações padrão ao montar um sistema de arquivos. Além do fato de que o daemon udisksd monta automaticamente os fielsystems, como mount determina as configurações apropriadas ao montar um sistema de arquivos sem opções como as seguintes:

# mount /dev/sdc /media/usb_drive

O que mais nos interessa são as opções longas de mount , como ( ro , rw , noexec , exec , nodev , .. . Como visto acima, o comando não lista nenhuma opção longa:

$ mount | grep /dev/sdc
/dev/sdc on /media/usb_drive type ext4 (rw,relatime,data=ordered)

Você pode ver que algumas opções foram usadas por padrão para o sistema de arquivos ext4 ao montar / dev / sdc: (rw,relatime,data=ordered) . No entanto, não há entrada para / dev / sdc no fstab. Observe que o sistema de arquivos mora em toda a unidade usb e não em uma partição. O comando acima parece como se tivéssemos executado este comando:

# mount /dev/sdc /media/usb_drive -o rw,relatime,data=ordered 

Qual é o mecanismo que o mount usa para determinar as opções de montagem padrão apropriadas?

    
por direprobs 16.08.2017 / 13:30

2 respostas

3

No Linux, pelo menos, os padrões são codificados para:

  1. O comando mount em si
  2. O auxiliar de montagem específico do sistema de arquivos ( mount.ext4 neste caso).
  3. A camada genérica do VFS mount function no kernel
  4. A função mount específica do sistema de arquivos no kernel

relatime cai no caso 3 e é, na verdade, um local comum para as pessoas fazerem o patch local nos kernels personalizados (geralmente, é corrigido para o padrão noatime ). rw também é case 3, mas pode ser substituído pela função mount específica do FS no kernel.

data=ordered é de 4, é ext * específico e pode ser alterado no tempo de compilação para data=writeback se você estiver criando seu próprio kernel (e pode ser diferente em algumas distribuições).

A lista exata que você obtém para as opções padrão varia de acordo com o tipo de sistema de arquivos (BTRFS tem um conjunto diferente de rw,relatime do que ext4 por exemplo), por especificidades do sistema de arquivos (você pode incorporar algumas opções padrão no superbloco para ext4 ), e às vezes até mesmo por hardware (o BTRFS tenta adivinhar se você tem um SSD e adicionará a opção ssd mount específica do FS se ele achar que você precisa).

A situação é bem parecida na maioria dos outros sistemas também, embora em alguns sistemas UNIX mais antigos mount acabe sendo apenas um multiplexador para comandos de montagem específicos do FS.

    
por 16.08.2017 / 13:50
1

Isso é do manual mount(8) em um sistema Ubuntu:

FILESYSTEM-INDEPENDENT MOUNT OPTIONS

Some of these options are only useful when they appear in the /etc/fstab file.

Some of these options could be enabled or disabled by default in the system kernel. To check the current setting see the options in /proc/mounts. Note that filesystems also have per-filesystem specific default mount options (see for example tune2fs -l output for extN filesystems).

O manual equivalente em, e. O OpenBSD deixa claro que as opções listadas no manual são para configurar opções de montagem não padrão. Portanto, há uma opção softdep e uma noatime , pois nosoftdep e atime são o padrão, por exemplo.

    
por 16.08.2017 / 13:37