Criando o subvolume btrfs como @ ou @home

11

Intrigado com o btrfs, decidi brincar com ele em uma VM. A instalação funciona muito bem desde que eu me lembre de colocar /bootuma partição separada e tudo parece funcionar bem.

O que eu gostaria de fazer é criar um subvolume separado para dados em massa com configurações diferentes de coisas como @e @home. btrfs subvolume create datafará isso por mim, mas estou curioso para saber por que ele continua nomeando @/data(ou coisas semelhantes quando tento /dataou @data). Existe uma maneira especial de criar subvolumes como @e, @homeportanto, meu subvolume de dados será exibido como @data? (e: qual é a diferença exata entre os esquemas de nomeação?)


Informação adicional:

  • ubuntu 12.04.2, executando como convidado do KVM no host mint15;
  • kernel 3.8.0-27-generic do ubuntu-x-swat (raring backport);
  • btrfs usando dois dispositivos /dev/sdae/dev/sdb
  • /dev/sdae /dev/sdbsão partições em um disco não usado pelo sistema operacional host
akaIDIOT
fonte

Respostas:

13

Suspiro , parece que eu postei um pouco cedo demais, com a ajuda do todo-poderoso Zosma no IRC, descobrimos como isso deve funcionar.

Subvolumes @e @homesão filhos da raiz btrfs, portanto, /não é realmente a raiz do sistema de arquivos. O UUID da raiz btrfs é fornecido /etc/fstabduas vezes, fornecendo as montagens para /e /home. A montagem da raiz real do sistema de arquivos mostra os subvolumes criados pelo instalador:

root@box:~# mkdir /mnt/btrfs
root@box:~# mount UUID=f8963df3-1320-4bc0-a125-62be185b029e /mnt/btrfs
root@box:~# ls /mnt/btrfs
@  @home

Então foi para onde eles foram! Agora é fácil criar um novo subvolume da maneira exata que o instalador do ubuntu fez:

root@box:~# btrfs subvolume create /mnt/btrfs/@data
Create subvolume '/mnt/btrfs/@data'

Agora, como criamos um subvolume na raiz btrfs em vez de no sistema de arquivos raiz para a instalação, /data/não será exibido por si só. Felizmente, é trivial copiar o truque usado pelo instalador examinando /etc/fstabe adicionando outra montagem para /data:

UUID=f8963df3-1320-4bc0-a125-62be185b029e /data  btrfs  defaults,subvol=@data 0 2

O último passo é criar o ponto de montagem: mkdir /data. Após uma reinicialização, teremos um /datadiretório montado a partir de um subvolume btrfs separado.

... Lucro!

akaIDIOT
fonte
5

A instalação funciona muito bem desde que eu lembre de colocar / inicializar em uma partição separada

Você não precisa ter um / boot separado. O GRUB2 pode ler e inicializar o Linux a partir de um btrfs.

O que eu gostaria de fazer é criar um subvolume separado para dados em massa com configurações diferentes de coisas como @ e @home.

Se você está falando sobre montar subvolumes com diferentes opções de montagem , esteja ciente de que atualmente (novembro de 2013) eles não são suportados: de acordo com a FAQ do Btrfs, " Posso montar subvolumes com diferentes opções de montagem? ", Atualmente apenas o btrfs específico opções não são suportadas ou não implementadas. No entanto, os desenvolvedores planejam implementá-lo no futuro.

O subvolume btrfs create data fará isso por mim, mas estou curioso para saber por que ele continua nomeando @ / data (ou coisas semelhantes quando tento / data ou @data)

Por padrão, o instalador do Ubuntu Ubiquity cria subvolumes @e @homeno sistema de arquivos, e sua raiz do Ubuntu está realmente no subvolume @.

Existe uma maneira especial de criar subvolumes como @ e @home para que meu subvolume de dados apareça como @data? (e: qual é a diferença exata entre os esquemas de nomeação?)

@e @homesão nomes arbitrários escolhidos pelo instalador, que não têm significado externo /etc/fstab. De fato, normalmente os renomeio para nomes mais específicos, para que eu possa ter muitas distribuições instaladas pela Ubiquity nos mesmos btrfs, desde que me lembre de atualizar os fstab.

Mais explicações sobre subvolume em Funtoo.org - BTRFS .

ignis
fonte
Obrigado por uma adição completa aqui; muita informação útil :)
akaIDIOT