Como escrever um arquivo fstab no Linux

Os pratos dentro de vários discos rígidos.
zentilia / Shutterstock.com

Adicionando um novo disco rígido ou unidade de estado sólido ao seu computador Linux? Você precisará editar seu fstabarquivo. Muitas pessoas acham a própria ideia assustadora. Sim, é fundamental que você acerte, mas armado com o conhecimento certo, realmente não é difícil. Nós fstabo orientamos no processo de edição de seu arquivo para integrar sua nova unidade em seu sistema de arquivos.

fstab, a tabela de sistemas de arquivos

Embora adicionar um novo disco rígido a um computador Linux não seja muito complicado, pode ser um pouco confuso na primeira vez que você tentar. Você conecta o hardware, liga o computador e faz login no sistema operacional. Mas você não pode ver sua nova unidade em lugar nenhum. Por que não aparece? Como você faz com que o Linux “veja” a unidade para que possa começar a configurá-la?

Na verdade, o Linux tem visto o seu hardware, mas não prontamente anunciá-lo. Ou até mesmo dar uma dica de que encontrou seu novo hardware. Você precisa interrogar o Linux para obter as informações de que precisa para colocar em seu fstabarquivo.

Veja como configurar seu novo disco rígido para que o Linux – e você – possa vê-lo e usá-lo. O processo tem duas partes. A primeira parte é fazer algum reconhecimento para identificar o disco rígido e reunir algumas informações sobre ele. A segunda parte é editar o fstabarquivo, usando as informações que coletamos na fase de reconhecimento.

Encontrando sua nova unidade

Estamos adicionando duas novas unidades a este sistema. Um é um disco rígido mecânico (HD) de 32 GB e o outro é uma unidade de estado sólido (SSD) de 16 GB .

Precisamos saber se o Linux pode vê-los e quais dispositivos de bloco o Linux está usando para eles. No Linux e em sistemas operacionais semelhantes ao Unix, um dispositivo de bloco é um arquivo especial que atua como uma interface para um dispositivo de onde os dados podem ser lidos e gravados (a menos que seja somente leitura). Dispositivos de bloco geralmente representam uma unidade de armazenamento em massa de algum tipo (por exemplo, uma partição em um disco rígido ou um CD-ROM. Eles são criados no /dev diretório.

Podemos usar o lsblkcomando para listar os dispositivos de bloco conectados ao seu computador Linux.

lsblk

lsblk em uma janela de terminal

A saída de lsblkestá em colunas.

Saída de lsblk em uma janela de terminal

As colunas são:

  • Nome : este é o nome do dispositivo. Os nomes dos dispositivos que começam com “sd” e são seguidos por uma letra representam os discos rígidos SCSI . A letra identifica os discos rígidos individuais, sendo “a” o primeiro, “b”. sendo o segundo e assim por diante. Se houver um número anexado, ele indica uma partição. Por exemplo, “sdb2” seria a partição 2 no segundo disco rígido SCSI.
  • Maj: Min : Esta coluna contém os números principais e secundários do dispositivo. O número principal indica o tipo de dispositivo (ou, mais precisamente, o tipo de driver usado para falar com aquele dispositivo). O número menor é uma contagem do número de dispositivos desse tipo.
  • Rm : Esta coluna mostra se o dispositivo é removível ou não. Observe que o dispositivo sr0tem o valor 1, indicando que é removível. Esta é uma unidade de CD-ROM.
  • Tamanho : é a quantidade de dados que pode ser armazenada no dispositivo.
  • Ro : Esta coluna mostrará 1 para dispositivos somente leitura e 0 para dispositivos de leitura e gravação. Os loopdispositivos são todos somente leitura .
  • Tipo : identifica o tipo de dispositivo. A entrada “disco” significa uma unidade de disco, a entrada “part” significa partição e “rom” significa memória somente leitura (CD-ROM).
  • Mountpoint : Isto mostra o ponto no sistema de ficheiros em que este dispositivo é montado. Se estiver em branco, o dispositivo não está montado.

Na captura de tela acima, você pode ver que os loopdispositivos recebem um número principal 7 (significando um dispositivo de loopback, ou loop ) e os números menores simplesmente aumentam em 1 a cada vez. dispositivos de loop são usados ​​com o squashfssistema de arquivos. Um squashfssistema de arquivos é criado sempre que um aplicativo é instalado usando o sistema de gerenciamento de pacotes rápido .

Os discos rígidos SCSI recebem nomes como sda, sdbe sdc, e todos têm o maior número 8 (disco rígido SCSI). Os números menores são agrupados em 16’s. Os números menores para a primeira unidade, sdavão de 0 a 15. O 0 representa a unidade física e o número menor de 1 representa a primeira partição dessa unidade. Para a segunda unidade, sdbos números secundários vão de 16 a 31. 16 representa a unidade física e 17 representa a primeira partição nessa unidade. Os próximos 16 números, de 32 a 47, são usados ​​para os números menores de  sdce assim por diante.

Recomendado:  Como usar um iniciador de tela inicial diferente no Amazon Fire Tablet (sem enraizá-lo)

Outros números principais comuns são 3 (para um  disco rígido IDE ) e 11 para CD-ROMS.

Na verdade, o /dev/sr0estilo das unidades de CD-ROM SDCSI está obsoleto. O formato aprovado é /dev/scd0. Apesar disso, o  /dev/sr0 formato ainda estava em uso em todas as máquinas usadas para pesquisar este artigo.

A documentação do kernel contém uma longa lista de todos os valores que os números maiores e menores podem assumir. É uma lista surpreendentemente longa.

Para desorganizar a saída lsblk, podemos usar greppara selecionar apenas os itens de  nosso interesse . Sabemos que não adicionamos um dispositivo de loop, então vamos selecionar todos os discos rígidos SCSI. sabemos que eles terão “sd” em seus nomes.

lsblk | grep sd

lsblk |  grep sd em uma janela de terminal

Este comando fará com que grepsejam impressas apenas as linhas que tenham “sd” no arquivo. Em nossa máquina de teste, vemos:

Saída de lsblk |  grep sd em uma janela de terminal

Portanto, temos três unidades SCSI. O primeiro /dev/sda,, é montado na raiz do sistema de arquivos /,. Os outros dois não são montados, o que é esperado para drives novos. Podemos ver que a unidade /dev/sdbtem 32 GB de tamanho, o que significa que é nossa unidade mecânica tradicional. A unidade /dev/sdc tem 16 GB de tamanho e esta é a nossa unidade SSD.

Na verdade, por se tratar de um computador virtual, também são discos virtuais. Portanto, o SSD está aparecendo como um drive mecânico SCSI. Em minha área de trabalho normal, meu SSD NVMe  aparece como /dev/nvme0n1, e a primeira partição nele é /dev/nvme0n1p1. Seu número principal é 259. Essas diferenças não mudam o que temos que fazer no  fstab arquivo, mas esteja ciente de que se você tiver um SSD, ele não aparecerá como uma unidade física.

Além disso, suas unidades provavelmente não terão uma partição se forem novas. Você pode usar fdiskpara criar uma partição, se necessário.

Identificação de unidades rotativas e não rotativas

Se usarmos a -oopção (saída) com lsblke adicionarmos a ROTA coluna (giratória) à tela, lsblkusaremos 1 para indicar um dispositivo de armazenamento giratório (unidade mecânica) e 0 para indicar um dispositivo de armazenamento não giratório (unidade de estado sólido )

lsblk -o + ROTA | grep sd

lsblk -o + ROTA |  grep sd em uma janela de terminal

Obtemos uma coluna extra à direita da tela, que é a ROTAcoluna (giratória). Como você pode ver, o “SSD” tem um 0 para o dispositivo e partição. Isso faz sentido porque um SSD é um dispositivo de armazenamento não rotativo.

saída de lsblk -o + ROTA |  grep sd em uma janela de terminal

Montagem dos sistemas de arquivos

Antes de começarmos a pensar no fstabarquivo, vamos verificar se podemos montar os drives manualmente. Dessa forma, se algo não funcionar ao usarmos o fstabarquivo, saberemos que o problema deve ser nossa sintaxe e não um problema do próprio drive.

Vamos criar alguns pontos de montagem temporários no /mntdiretório. Você precisará usar sudoe será solicitada sua senha .

sudo mkdir / mnt / scsi

sudo mkdir / mnt / scsi em uma janela de terminal

sudo mkdir / mnt / ssd

sudo mkdir / mnt / ssd em uma janela de terminal

Agora vamos montar a unidade SCSI no novo ponto de montagem. Usaremos o mountcomando em sua forma mais simples. Informaremos o nome da partição que desejamos montar e o ponto de montagem em que queremos montá-la. mountirá montar o sistema de arquivos nessa partição no ponto de montagem que especificarmos.

Estamos especificando a partição que contém o sistema de arquivos, não a unidade, portanto, certifique-se de incluir o dígito para a partição, neste caso, “1”.

sudo mount / dev / sdb1 / mnt / scsi

Eu não bebo em uma janela de terminal

Se tudo correr bem, não haverá resposta de mount. Você silenciosamente retorna ao prompt de comando.

A montagem do SSD é igualmente simples. Dizemos em mountqual partição em qual dispositivo montar, e o ponto de montagem para montá-lo.

sudo mount / dev / sdc1 / mnt / ssd

sudo mount / dev / sdc1 / mnt / ssd em uma janela de terminal

Mais uma vez, o silêncio vale ouro.

Verificando as montagens

Para verificar se as montagens ocorreram, usaremos lsblknovamente. Iremos canalizar sua saída grepe selecionar as entradas “sda1”, “sdb2” e “sdc1”.

lsblk -o + ROTA | grep sd [ac] 1

lsblk -o + ROTA |  grep sd [ac] 1 em uma janela de terminal

mountmostra-nos as três partições montadas. São os dois que acabamos de montar e a partição original montada em /.

saída da montagem em uma janela de terminal

A partição /dev/sdb1está montada /mnt/scsie em um dispositivo de armazenamento giratório. A partição  /dev/sdc1está montada /mnt/ssde em um dispositivo de armazenamento não giratório. Tudo parece bem.

Agora precisamos configurar o fstabarquivo para que esses dispositivos sejam montados toda vez que o computador for inicializado.

O arquivo fstab

O fstabarquivo contém uma entrada para cada sistema de arquivos montado quando o computador é reiniciado. Cada entrada é composta por seis campos. Os campos são:

  • Sistema de arquivos : Não é, como seu nome sugere, o tipo de sistema de arquivos na partição (é para isso que  serve o campo de tipo ). Este é o identificador da partição que deve ser montada.
  • Ponto de montagem : O local no sistema de arquivos em que você deseja que a partição seja montada.
  • Tipo : o tipo de sistema de arquivos na partição.
  • Opções : Cada sistema de arquivos pode ter opções especificadas para ativar ou desativar a funcionalidade.
  • Dump : Uma referência a um meio quase obsoleto de fazer backup de sistemas de arquivos, onde todo o sistema de arquivos era “despejado” em fita.
  • Passar : Esta é a bandeira de “passar”. Diz ao Linux quais partições devem ser verificadas quanto a erros usando fscke em que ordem . A partição principal de inicialização e sistema operacional deve ser 1, e o resto pode ser definido como 2. Se o sinalizador estiver definido como zero, significa “não verifique nada”. Se o seu sistema de arquivos não for um sistema de arquivos com diário (como ext2 ou FAT16 / 32, por exemplo), é melhor desativá-lo configurando-o como 0.
Recomendado:  12 maneiras de abrir o File Explorer no Windows 10

Esses campos devem ser especificados nesta ordem e devem ter um espaço ou uma tabulação entre eles. Encontrar os valores para esses campos pode ser assustador, especialmente os valores do campo “opções”. “Opções” campo opções deve estar em uma lista separada por vírgulas, sem espaços entre eles.

A manpágina para cada sistema de arquivos listará as opções que podem ser usadas. ext4tem cerca de 40 opções . Aqui estão algumas das opções mais comuns:

  • Auto:  O sistema de arquivos será montado automaticamente no momento da inicialização.
  • Noauto : O sistema de arquivos só é montado quando você insere o mount -acomando.
  • Exec : A execução de binários é permitida neste sistema de arquivos.
  • Noexec : A execução de binários não é permitida neste sistema de arquivos.
  • Ro : O sistema de arquivos deve ser montado como somente leitura.
  • Rw : O sistema de arquivos deve ser montado como leitura-gravação.
  • Sincronizar : as gravações de arquivos devem ser realizadas imediatamente e não armazenadas em buffer. Melhor reservado para disquetes, se alguém ainda os estiver usando. Incorre em uma penalidade de desempenho.
  • Assíncrono : as gravações de arquivo devem ser armazenadas em buffer e otimizadas.
  • Usuário : qualquer usuário tem permissão para montar o sistema de arquivos.
  • Nouser : O usuário root é o único usuário que pode montar este sistema de arquivos.
  • Padrões : esta é uma forma abreviada de especificar um conjunto de configurações comuns: rw, suid, dev, exec, auto, nouser e async).
  • Suid : Permite a operação dos bits suide sgid. O suidbit é usado para permitir que um arquivo seja executado como root, por um usuário normal, sem conceder ao usuário privilégios de root completos . Quando o sgidbit é definido em um diretório, os arquivos e diretórios criados dentro desse diretório têm sua propriedade de grupo definida para a do diretório , não para o grupo do usuário que os criou.
  • Nosuid : Não permitir o uso dos bits suide sgid.
  • Noatime: – Não atualize os tempos de acesso aos arquivos no sistema de arquivos. Isso pode ajudar no desempenho em hardware antigo.
  • Nodiratime : Não atualize os horários de acesso ao diretório no sistema de arquivos.
  • Relatime : Atualize os tempos de acesso ao arquivo em relação ao tempo de modificação do arquivo.

A opção “padrões” é uma boa estratégia inicial. Você pode adicionar ou remover outras opções se algum ajuste fino for necessário. Se ao menos houvesse uma maneira simples de obter as configurações de que você precisa, na ordem em que você precisa inseri-las no fstabarquivo.

Entre no mtabarquivo.

O arquivo mtab

O mtabarquivo é a lista de sistemas de arquivos montados atualmente . Isso está em contraste com o fstabarquivo que lista os sistemas de arquivos que devem ser montados no momento da inicialização. O mtabarquivo inclui sistemas de arquivos montados manualmente. Já montamos nossas novas unidades, então elas devem aparecer no mtabarquivo.

Podemos ver o conteúdo do mtabarquivo usando cat. Restringiremos a saída canalizando-a, grepexaminando /dev/sdb1e /dev/sdc1apenas.

cat / etc / mtab | grep sd [bc] 1

cat / etc / mtab |  grep sd [bc] 1 em uma janela de terminal

A saída mostra as mtabentradas para essas duas partições.

Saída de cat / etc / mtab em uma janela de terminal

Poderíamos levantar esses valores e soltá-los diretamente no fstabarquivo, certificando-se de que havia um espaço ou uma guia entre cada campo. E seria isso. As unidades seriam montadas quando reinicializássemos.

Existem duas advertências para isso. Um é o ponto de montagem. Criamos pontos de montagem temporários apenas para provar que poderíamos montar as novas partições nas novas unidades. Precisaríamos inserir os pontos de montagem reais em vez dos temporários – se fossem diferentes.

A segunda advertência é: se usarmos as configurações do mtabarquivo, usaremos o arquivo do dispositivo de bloco como identificador para cada partição. Isso funcionaria, mas os valores /dev/sdae /dev/sdbassim por diante correm o risco de mudar se um novo hardware de armazenamento em massa for adicionado ao computador. Isso significaria que as configurações no  fstab arquivo estariam incorretas.

Recomendado:  A Apple está descartando uma de suas regras mais confusas da App Store

Cada partição tem um Identificador Único Universal (UUID), que podemos usar para identificar a partição. Isso nunca vai mudar. Se usarmos o UUID para identificar as partições no fstabarquivo, as configurações sempre permanecerão precisas e verdadeiras.

Se você estiver usando suas novas partições como parte de um sistema RAID ( Redundant Array of Inexpensive Disks ), verifique a documentação desse sistema. Ele pode especificar que você deve usar o identificador do dispositivo de bloco em vez do UUID.

Encontrando o UUID de uma partição

Para encontrar o UUID de uma partição, podemos usar blkid para imprimir os atributos dos dispositivos de bloco . Limitaremos a saída para nossas duas novas partições em nossas novas unidades:

blkid | grep sd [bc] 1

blkid |  grep sd [bc] 1 em uma janela de terminal

A saída inclui o UUID para cada partição.

usando blkid para obter o UUID de uma partição

O PARTUUID é uma forma de UUID que pode ser usada com o   método de particionamento GUID Partition Tables (GPT) (se você não estiver usando o método de particionamento Master Boot Record (MBR)).

Editando o arquivo fstab

Abra o fstabarquivo em um editor. Estamos usandogedit , um editor fácil de usar encontrado na maioria das distribuições Linux.

sudo gedit / etc / fstab

sudo gedit / etc / fstab em uma janela de terminal

O editor aparece com o fstabarquivo carregado nele.

o arquivo fstab antes de editar

Este fstabarquivo já contém duas entradas. Eles são a partição no disco rígido existente /dev/sda1e o sistema de arquivos de troca. Tenha cuidado para não alterar essas entradas.

Precisamos adicionar duas novas entradas ao fstabarquivo. Um para a partição na unidade SCSI e outro para a partição na unidade SSD. Vamos adicionar a partição SCSI primeiro. Observe que as linhas que começam com um hash #são comentários.

  • No campo “sistema de arquivos”, usaremos o UUID que foi blkidrecuperado para nós anteriormente. Comece a linha com “UUID =” e cole o UUID. Pressione espaço ou tabulação.
  • Para o campo “ponto de montagem”, vamos usar o ponto de montagem que criamos anteriormente  /mnt/scsi,. Você usaria o ponto de montagem apropriado do seu sistema. Pressione espaço ou tabulação.
  • Para “tipo”, vamos inserir ext4, que é o tipo de sistema de arquivos em nossa partição. Pressione espaço ou tabulação.
  • No campo “opções” usaremos as opções que recuperamos usando cat /etc/mtab. Estes são “rw, relatime”. Pressione espaço ou tabulação.
  • O campo “dump” é definido como zero. Pressione espaço ou tabulação.
  • O campo “aprovado” é definido como zero.

Agora vamos adicionar a fstabpartição de entrada na unidade SSD em uma linha separada.

  • No campo “sistema de arquivos”, inseriremos o UUID que foi blkidrecuperado para a partição na unidade SSD. Comece a linha com “UUID =” e cole o UUID. Pressione espaço ou tabulação.
  • Para o campo “ponto de montagem”, vamos usar o ponto de montagem que criamos anteriormente  /mnt/ssd,. Pressione espaço ou tabulação.
  • Para “tipo”, vamos inserir ext4, que é o tipo de sistema de arquivos em nossa partição. Pressione espaço ou tabulação.
  • No campo “opções” – apenas para tornar as duas novas entradas diferentes em nosso exemplo – usaremos a opção “padrões”. Pressione espaço ou tabulação.
  • O campo “dump” é definido como zero. Pressione espaço ou tabulação.
  • O campo “aprovado” é definido como zero.

arquivo fstab após editar e adicionar as unidades SCSI e SSD

Salve o arquivo e feche o editor.

Testando fstab sem reinicializar

Podemos desmontar nossas novas unidades e então forçar uma atualização no fstabarquivo. A montagem bem-sucedida de nossas novas partições verificará se as configurações e parâmetros inseridos estão sintaticamente corretos. Isso significa que nosso  fstabarquivo deve ser processado corretamente durante uma reinicialização ou seqüência de inicialização.

Para desmontar a unidade SCSI, use este comando. Observe que há apenas um “n” em “umount”:

sudo umount / dev / sdb1

sudo umount / dev / sdb1 em uma janela de terminal

Para desmontar a unidade SSD, use este comando:

sudo umount / dev / sdc1

sudo umount / dev / sdc1 em uma janela de terminal

Agora vamos usar lsblkpara verificar se esses dispositivos de bloco estão montados.

lsblk | grep sd

E vemos que os dispositivos de bloco estão presentes no computador, mas não montados em qualquer lugar.

Saída de lsblk mostrando dispositivos de bloco não montados em uma janela de terminal

Podemos usar o mountcomando com a -aopção (todos) para remontar todos os sistemas de arquivos em  fstab.

sudo mount -a

sudo mount -a em uma janela de terminal

E podemos verificar mais uma vez com lsblkpara ver se nossas novas partições agora estão montadas:

lsblk | grep sd

Saída de lsblk |  grep sd mostrando dispositivos de bloco montados em uma janela de terminal

Tudo está montado onde deveria estar. Tudo o que precisamos fazer agora é alterar a propriedade dos pontos de montagem, caso contrário root, seremos os únicos que poderão acessar os novos dispositivos de armazenamento.

Podemos fazer isso facilmente usando chown. Este é o comando para o ponto de montagem SCSI:

sudo chown dave: users / mnt / scsi

sudo chown dave: users / mnt / scsi em uma janela de terminal

E este é o comando para o ponto de montagem SSD:

sudo chown dave: users / mnt / ssd

sudo chown dave: users / mnt / ssd em uma janela de terminal

Agora podemos reiniciar nosso computador com confiança, sabendo que as partições que adicionamos serão montadas para nós e temos acesso a elas.

Afinal, não é tão assustador

Todo o trabalho duro está na fase de reconhecimento – e isso também não foi difícil. Editar o fstabarquivo depois de reunir as informações de que precisa é muito fácil. A preparação é tudo.