Arch Linux no ZFS – Parte 2 Instalação John Ramsden comprar Bitcoin Amazon

Eu recomendaria usar uma partição dedicada com BIOS ou UEFI. Embora seja possível salvar seu kernel e todas as outras imagens de inicialização em um conjunto de dados do ZFS usando um carregador de inicialização do BIOS, como o GRUB, usei uma partição de inicialização. Tipo de pool de instalação do ZFS e redundância

Depois que os IDs de disco são conhecidos, o pool pode ser criado. Como os discos podem ser particionados manualmente ou MBR para GPT, não é necessário particionar discos inteiros antes de criar o pool, pois o ZFS particionará o próprio disco como raiz do Solaris (BF00) ao criar um novo pool.

Muitas propriedades podem ser definidas para um conjunto inteiro ou para conjuntos de dados específicos.


Um recurso quase sempre desejado em todo o pool é a compactação. O ZFS usa compactação “LZ4”, que é um excelente compromisso entre o desempenho e o nível de compactação.

Os conjuntos de dados são semelhantes às partições. No entanto, eles têm muitas vantagens que as partições não possuem. Eles são organizados hierarquicamente e não exigem uma cota específica. Todos os registros compartilham espaço em um determinado pool. Essas propriedades nos registros significam que elas podem ser usadas em grande parte sem impacto.

Para criar uma configuração que possa ser usada com ambientes de inicialização, o sistema de arquivos raiz será incluído em um conjunto de dados ‘ROOT’ adicional. Em conjunto com os ambientes de inicialização, isso permite clonar o sistema de arquivos raiz entre os ambientes enquanto compartilha os conjuntos de dados que não estão em “ROOT”. Ambientes de inicialização não precisam ser usados, mas criar um sistema compatível com eles para o futuro não é problema.

Pelo menos os seguintes registros são criados na piscina root: $ {SYS_ROOT} / $ {system_name} / $ {ROOT e SYS_ROOT} / $ {system_name} / ROOT / default. A maioria dos usuários também quer dividir um monte de dados {$ SYS_ROOT} / $ {system_name} / em casa, o que não está em todo o ambiente de inicialização de dados ROOT.

Defina / var, / var / lib e / usr como canmount = off, o que significa que eles não estão montados e estão lá apenas para criar a estrutura do conjunto de dados do ZFS. Isso insere seus dados no registro do ambiente de inicialização. Suas propriedades são herdadas por todos os registros filhos.

NOTA: Para trabalhar para o seguinte em um loop no zsh, zsh em quartos conjunto deve dividir -o shwordsplit [root] # SYSTEM_DATASETS = var / lib / systemd / core despejo var / log var / log / var Jornal / lib / LXC var / lib / lxd var / lib / máquinas var / lib / libvirt var / cache usr / local [root] # = SYS_ROOT vault / sys; SYSTEM_NAME = queixo; [root] # para ds em $ {SYSTEM_DATASETS}; do zfs create -o ponto de montagem = herda $ {SYS_ROOT} / $ {SYSTEM_NAME} / $ {ds}; pronto

Eu crio registros de usuário estendidos fora do ambiente de inicialização. [Root] # = USER_DATASETS, john john / john local / config-john / cache [root] # ds em $ {} USER_DATASETS; do zfs create -o ponto de montagem = herda $ {SYS_ROOT} / $ {SYSTEM_NAME} / home / $ {ds}; pronto

Eu crio $ {SYS_ROOT} / $ {system_name} / home / john / local / share e defino-o como canmount = apenas para criar a partir da estrutura de registro do ZFS. [Root] # zfs create -o ponto de montagem = / home / joe / .local / share -o canmount = off $ {SYS_ROOT} / $ {system_name} / home / john / local / share

Vou criar meus diretórios de dados sob o cofre / dados, eles existem fora dos diferentes sistemas e são compartilhados por eles. [root] # DATA_ROOT = seguro / dados; [Root] # zfs create -o mountpoint = Não $ {} DATA_DATASETS DATA_ROOT = ‘Livros Computador Pessoal Imagens de referência Universidade Workspace’ [root] # para ds em $ {} DATA_DATASETS; do zfs create -o ponto de montagem = herança $ {DATA_ROOT} / $ {ds}; estrutura final concluída

A partir do zfsonlinux 0.7.0, a delegação do ZFS com zfs permite trabalhar no Linux. Eu delegar todos os registros em $ {SYS_ROOT} / $ {system_name} / home / john meu usuário ‘John’ a oportunidade de tirar o instantâneo e criar registros. zfs permitem John editar, ponto de montagem, instante SYS_ROOT $ {} / $ {system_name} / home / john

Se um registro separado for usado para / usr, o gancho ‘usr’ deve estar ativado. Eu também descobri que o gancho ‘shutdown’ também é necessário para que / var possa travar corretamente ao parar. # … HOOKS = "Base udev autodetect modconf bloco keypad zfs usr Desligar sistemas de arquivos" # … Digite chroot

Eu originalmente usei pacotes git, mas depois de ter um problema, mudei para o repositório zfs linux, que é a versão ZOL. A menos que você esteja muito ansioso para ficar na beira do sangramento, eu recomendo que você use o repositório zfs-linux.

Digite o bootloader. Ao usar o ZFS, o parâmetro adicional zfs = deve ser adicionado à lista de opções. Além disso, as configurações de bootstrap devem ser idênticas às de uma instalação típica. [root] # nano /boot/loader/entries/arch.conf title Arch Linux

Depois de concluir a instalação, saia de todas as partições normais, seguidas por todos os conjuntos de dados do ZFS. O comando zfs unmount -a deve ter o cuidado de desmontar todos os conjuntos de dados do ZFS. No entanto, se o pool não quiser exportar, talvez seja necessário desconectá-lo manualmente. [root] # umount / mnt / boot

Devido a problemas com a indisponibilidade do ID do host no sistema na inicialização, a imagem initramfs deve ser customizada para armazenar o ID do host. A maneira mais fácil de fazer isso é executar um programa que registre o ID do host na imagem. A alternativa é passar o ID do host para o carregador de boot em uma opção adicional com spl.spl_hostid = 0x.

int main () {int res; Res = sethostide (gethostide ()); if (res! = 0) {switch (errno) {caso EACCES: fprintf (stderr, "Erro! Nenhuma permissão para escrever isso" " Arquivo para salvar o ID do host. \ n " "Você é raiz? \ n " ) Pausa; Caso EPERM: fprintf (stderr, "Erro! O procedimento de nomeação é eficaz" " O nome de usuário do usuário ou grupo não é o mesmo" " seu identificador real correspondente. \ n " ) Pausa; Padrão: fprintf (stderr, "Erro desconhecido \ n " )} de volta 1; } retornar 0; }

Após a instalação bem-sucedida de uma corrida, há muitas características ZFS para usar que eu encontrei na Parte 3 desta série, Arch Linux ZFS – Parte 3: backups, instantâneos e outras funções. Aqui estão alguns recursos importantes a serem considerados:

Todo o código usado neste post está disponível no meu GitHub. Eu dividi o código em três partes, o código que foi usado para a instalação antes do chroot, o código que foi usado no chroot e o código que foi usado após a reinicialização. Os scripts não são executáveis, mas são uma boa referência.