Difference between pages "ZFS as Root Filesystem" and "Install/pt-br/Partitioning"

From Funtoo
(Difference between pages)
Jump to navigation Jump to search
 
 
Line 1: Line 1:
== Introduction ==


This tutorial will show you how to install Funtoo on ZFS (rootfs). This tutorial is meant to be an "overlay" over the [[Funtoo_Linux_Installation|Regular Funtoo Installation]]. Follow the normal installation and only use this guide for steps 2, 3, and 8.
===Particionamento===


=== Introduction to ZFS ===
=== Prepare o Disco Rígido ===


Since ZFS is a new technology for Linux, it can be helpful to understand some of its benefits, particularly in comparison to BTRFS, another popular next-generation Linux filesystem:
==== Introdução ====


* On Linux, the ZFS code can be updated independently of the kernel to obtain the latest fixes. btrfs is exclusive to Linux and you need to build the latest kernel sources to get the latest fixes.
Em tempos remotos, só havia um jeito de inicializar (boot)o computador compatível com a arquitetura PC. Todos os nossos desktops e servidores tinham uma BIOS padrão, todos os nossos hard drives utilizavam Master Boot Records, e eram particionados utilizando esquema de partição MBR. E nós gostávamos disso daquele jeito mesmo!


* ZFS is supported on multiple platforms. The platforms with the best support are Solaris, FreeBSD and Linux. Other platforms with varying degrees of support are NetBSD, Mac OS X and Windows. btrfs is exclusive to Linux.
Então, depois veio os EFI e UEFI, que são firmware em novo-estilo projetados para inicializar sistemas, junto as tabelas de partição GPT para suportar discos superiores à 2.2TB. Tudo repentino, nós tínhamos uma variedade de opções para inicializar os sistemas Linux, tornando o que uma vez era um método único de encaixe de tudo  (one-method-fits-all) aproximar-se á algo muito mais complexo.


* ZFS has the Adaptive Replacement Cache replacement algorithm while btrfs uses the Linux kernel's Last Recently Used replacement algorithm. The former often has an overwhelmingly superior hit rate, which means fewer disk accesses.
Vamos parar por um momento para rever as opções de boot disponíveis para você. Esse pequeno Guia utiliza, e recomenda, o método da BIOS à moda antiga inicializando e usando um MBR. Funciona. Não há nada de errado com ele. Se seu disco é do tamanho de  2TB ou menor, ele não vai impedir que você use toda a capacidade do seu disco, também.


* ZFS has the ZFS Intent Log and SLOG devices, which accelerates small synchronous write performance.
Mas, há alguns situações onde  o método da não é satisfatório. Se você obtiver um disco de tamando superior à 2TB, então partições MBR não o permitirão acessar todo o seu  armazenamento (storage). Então essa é uma rasão. Outra rasão é que há alguns então assim chamados  "PC" por aí afora que não suportam maias BIOS, e lhe força a utilizar o UEFI para inicializar. Então, sem compaixão pelas pessoas que se enquadram nessa situação, esse Guia de Instalação documenta boot pelo UEFI também.


* ZFS handles internal fragmentation gracefully, such that you can fill it until 100%. Internal fragmentation in btrfs can make btrfs think it is full at 10%. Btrfs has no automatic rebalancing code, so it requires a manual rebalance to correct it.
Nossa recomandação ainda é ir pela moda antiga a não ser  que tenha resão para não. Chamamos esse método  de método '''BIOS + GRUB (MBR)'''. Esse é o método tradicional de configurar um PC para inicilizar o Linux.


* ZFS has raidz, which is like RAID 5/6 (or a hypothetical RAID 7 that supports 3 parity disks), except it does not suffer from the RAID write hole issue thanks to its use of CoW and a variable stripe size. btrfs gained integrated RAID 5/6 functionality in Linux 3.9. However, its implementation uses a stripe cache that can only partially mitigate the effect of the RAID write hole.
Se você precisa usar UEFI para inicilizar, recomendamos não utillizar de maneira alguma o MBR para boot, já que alguns sistemas suportam as some UEFI, mas outros não. Ao inves disso, recomendamos utilizar o UEFI para inicializar o GRUB, que carregará o Linux. Referimos a esse método como o método '''UEFI + GRUB (GPT)'''.


* ZFS send/receive implementation supports incremental update when doing backups. btrfs' send/receive implementation requires sending the entire snapshot.
E sim, há ainda mais, alguns aos quais estão documentados na página [[Boot Methods]]. Nós costumavamos recomendar um étodo '''BIOS + GRUB (GPT)''', mas esse não tem consistentemente suporte em uma variedade de hardware.


* ZFS supports data deduplication, which is a memory hog and only works well for specialized workloads. btrfs has no equivalent.
'''A grande pergunta é -- que método de boot eu devo usar?''' Aqui está como responder.


* ZFS datasets have a hierarchical namespace while btrfs subvolumes have a flat namespace.
;Princípio nº 1 - Moda antiga (Old School): Se você pode inicializar com confiavelmente o System Rescue CD e ele exibe um menu inicial azul claro, você está inializando o CD usando a BIOS, e provavelmente você pode assim inicilizar o Funtoo Linux ussando a BIOS. Então, vá pela moda antiga e use a boot da BIO, ''a não ser que'' você tenha alguma resão para usar UEFI, tal qual ter um disco do tamando superior a 2.2TB. Nesse caso, veja o segundo Princípio nº 2, já que seu sistema pode ter suporte também à  boot UEFI.


* ZFS has the ability to create virtual block devices called zvols in its namespace. btrfs has no equivalent and must rely on the loop device for this functionality, which is cumbersome.
;Princípio nº 2 - Moderno (New School): Se você pode confiavelmente inicilizar o System Rescue CD e ele te exibe um menu inicial preto e branco -- parabens, seu sistema é configurado para suportar o boot via UEFI. Isso significa que você está pronto para instalar o install Funtoo Linux para inicializá-lo via UEFI. Seu sistema pode ainda ter suporte para inicilizar com a BIOS, mas  somente se for testado pela UEFI primeiro. Você pode dar uma bisbilhotada na sua configuração de boot pelo BIOS e brincar com isso.


The only area where btrfs is ahead of ZFS is in the area of small file
;Qual pe a Grande Diferença entra a Moda Antiga e a Moderna?: Aqui está a coisa. Se você for com as as partições MBR a moda antiga, sua partição <code>/boot</code> será um sistema de arquivos ext2, e você utilizará <code>fdisk</code> para criar suas partições MBR. Se você com as partições GPT e boot via UEFI, sua partição <code>/boot</code> será um sistema de arquivos vfat, por que isso é o que o UEFI é capaz de ler, e você utilizará <code>gdisk</code> para criar suas partiçẽos GP. E você instalará o GRUB um pouco diferente. É a respeito disso que tudo vem abaixo, em caso você estivesse curioso/a.
efficiency. btrfs supports a feature called block suballocation, which
enables it to store small files far more efficiently than ZFS. It is
possible to use another filesystem (e.g. reiserfs) on top of a ZFS zvol
to obtain similar benefits (with arguably better data integrity) when
dealing with many small files (e.g. the portage tree).


For a quick tour of ZFS and have a big picture of its common operations you can consult the page [[ZFS Fun]].
{{Note|'''Algumas placas mãe pode aparentar suporte a UEFI, mas não suportam.''' Faça sua pesquisa. Por exemplo, O BIOS atribuído na minha Gigabyte GA-990FXA-UD7 rev 1.1 tem uma opção de abilitar o boot UEFI por CD/DVD. '''Isso não é o sufuciente para abilitar boot via UEFI pelo hard drives e instalar o Funtoo Linux.''' UEFI deve ter tanto para mídia removível (assim você pode inicializar o System Rescue CD utilizando o UEFI) quanto mídias fixas (assim você pode inicializar sua nova instalação do Funtoo Linux.) Revelá-se que revisões posteriores dessa placa (rev 3.0) tem um novo BIOS que suporta completamente o boot do UEFI.  Isso pode apontar para o terceiro princípio -- conheça teu hardware.}}


=== Disclaimers ===
==== O método a moda antiga (BIOS/MBR) ====


{{fancywarning|This guide is a work in progress. Expect some quirks.}}
{{Note|Use esse método se você estiver inicializando sua BIOS, e se o o menu boot inicial do seu System Rescue CD initial estiver em azul claro. Se você for utilizar o método moderno, [[#Método Moderno (UEFI/GPT)|click aqui para saltar para o UEFI/GPT.]]}}
{{fancyimportant|'''Since ZFS was really designed for 64 bit systems, we are only recommending and supporting 64 bit platforms and installations. We will not be supporting 32 bit platforms'''!}}
== Downloading the ISO (With ZFS) ==
In order for us to install Funtoo on ZFS, you will need an environment that already provides the ZFS tools. Therefore we will download a customized version of System Rescue CD with ZFS included.


<pre>
===== Preparo =====
Name: sysresccd-4.2.0_zfs_0.6.2.iso  (545 MB)
Release Date: 2014-02-25
md5sum 01f4e6929247d54db77ab7be4d156d85
</pre>


Primeiro, é uma boa idea certificar-se de que encontrou o hard disk correto para particioná-lo. Tente esse comando e verifique que  <code>/dev/sda</code> é o disco que você quer particionar:


'''[http://ftp.osuosl.org/pub/funtoo/distfiles/sysresccd/ Download System Rescue CD with ZFS]'''<br />
<console>
# ##i##fdisk -l /dev/sda


== Creating a bootable USB from ISO (From a Linux Environment) ==
Disk /dev/sda: 640.1 GB, 640135028736 bytes, 1250263728 sectors
After you download the iso, you can do the following steps to create a bootable USB:
Units = sectors of 1 * 512 = 512 bytes
 
Sector size (logical/physical): 512 bytes / 512 bytes
<console>
I/O size (minimum/optimal): 512 bytes / 512 bytes
Make a temporary directory
Disk label type: gpt
# ##i##mkdir /tmp/loop


Mount the iso
# ##i##mount -o ro,loop /root/sysresccd-4.2.0_zfs_0.6.2.iso /tmp/loop


Run the usb installer
#        Start          End    Size  Type            Name
# ##i##/tmp/loop/usb_inst.sh
1        2048  1250263694  596.2G  Linux filesyste Linux filesystem
</console>
</console>


That should be all you need to do to get your flash drive working.
Agora, é recomendado que você apague quaisquer tabelas de partição MBR ou GPT existente no disco, que poderiam confundir o BIOS do sistema no momento da inicialização. Fazemos isso utilizando <code>sgdisk</code>:
{{fancywarning|Isso tornará quaisquer partições existentes inacessiveis! É formente lhe aconcelhado advetido realizar backup de qualquer dado crítico antes de prosseguir.}}


== Booting the ISO ==
<console>
# ##i##sgdisk --zap-all /dev/sda


{{fancywarning|'''When booting into the ISO, Make sure that you select the "Alternate 64 bit kernel (altker64)". The ZFS modules have been built specifically for this kernel rather than the standard kernel. If you select a different kernel, you will get a fail to load module stack error message.'''}}
Creating new GPT entries.
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
</console>


== Creating partitions ==
Essa saída també não é nada para se preocupar, desde que o comando ainda  foi bem sucedido:
There are two ways to partition your disk: You can use your entire drive and let ZFS automatically partition it for you, or you can do it manually.


We will be showing you how to partition it '''manually''' because if you partition it manually you get to create your own layout, you get to have your own separate /boot partition (Which is nice since not every bootloader supports booting from ZFS pools), and you get to boot into RAID10, RAID5 (RAIDZ) pools and any other layouts due to you having a separate /boot partition.
<console>
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory.
***************************************************************
</console>


==== gdisk (GPT Style) ====
===== Particionamento =====


'''A Fresh Start''':
Agora usaremos <code>fdisk</code> para criar a tabela de partição MBR e as partições:
 
First lets make sure that the disk is completely wiped from any previous disk labels and partitions.
We will also assume that <tt>/dev/sda</tt> is the target drive.<br />


<console>
<console>
# ##i##sgdisk -Z /dev/sda
# ##i##fdisk /dev/sda
</console>
</console>


{{fancywarning|This is a destructive operation and the program will not ask you for confirmation! Make sure you really don't want anything on this disk.}}
Dentro do <code>fdisk</code>, siga esses passos:


Now that we have a clean drive, we will create the new layout.
'''Esvazie a tabela de partição''':
 
First open up the application:


<console>
<console>
# ##i##gdisk /dev/sda
Command (m for help): ##i##o ↵
</console>
</console>


'''Create Partition 1''' (boot):
'''Crie a primeira Partição''' (boot):
 
<console>
<console>
Command: ##i##n ↵
Command (m for help): ##i##n ↵
Partition Number: ##i##↵
Partition type (default p): ##i##↵
Partition number (1-4, default 1): ##i##↵
First sector: ##i##↵
First sector: ##i##↵
Last sector: ##i##+250M ↵
Last sector: ##i##+128M
Hex Code: ##i##
</console>
</console>


'''Create Partition 2''' (BIOS Boot Partition):
'''Crie a segunda Partição''' (swap):
<console>Command: ##i##n ↵
Partition Number: ##i##↵
First sector: ##i##↵
Last sector: ##i##+32M ↵
Hex Code: ##i##EF02 ↵
</console>


'''Create Partition 3''' (ZFS):
<console>
<console>Command: ##i##n ↵
Command (m for help): ##i##n ↵
Partition Number: ##i##↵
Partition type (default p): ##i##↵
Partition number (2-4, default 2): ##i##↵
First sector: ##i##↵
First sector: ##i##↵
Last sector: ##i##↵
Last sector: ##i##+2G
Hex Code: ##i##bf00
Command (m for help): ##i##t ↵  
 
Partition number (1,2, default 2): ##i## ↵
Command: ##i##p
Hex code (type L to list all codes): ##i##82
 
Number  Start (sector)    End (sector) Size      Code  Name
  1            2048          514047  250.0 MiB  8300  Linux filesystem
  2          514048          579583  32.0 MiB    EF02  BIOS boot partition
  3          579584      1953525134  931.2 GiB  BF00  Solaris root
 
Command: ##i##w
</console>
</console>


 
'''Crie a partição root:'''
=== Format your /boot partition ===


<console>
<console>
# ##i##mkfs.ext2 -m 1 /dev/sda1
Command (m for help): ##i##n ↵
Partition type (default p): ##i##
Partition number (3,4, default 3): ##i##↵
First sector: ##i##↵
Last sector: ##i##↵
</console>
</console>


=== Create the zpool ===
'''Verifique a tabela de partição:'''
We will first create the pool. The pool will be named `tank` and the disk will be aligned to 4096 (using ashift=12)
<console># ##i##zpool create -f -o ashift=12 -o cachefile= -O compression=on -m none -R /mnt/funtoo tank /dev/sda3</console>
 
=== Create the zfs datasets ===
We will now create some datasets. For this installation, we will create a small but future proof amount of datasets. We will have a dataset for the OS (/), and your swap. We will also show you how to create some optional datasets: <tt>/home</tt>, <tt>/var</tt>, <tt>/usr/src</tt>, and <tt>/usr/portage</tt>.


<console>
<console>
Create some empty containers for organization purposes, and make the dataset that will hold /
Command (m for help): ##i##p
# ##i##zfs create -p tank/funtoo
# ##i##zfs create -o mountpoint=/ tank/funtoo/root


Optional, but recommended datasets: /home
Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
# ##i##zfs create -o mountpoint=/home tank/funtoo/home
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x82abc9a6


Optional datasets: /usr/src, /usr/portage/{distfiles,packages}
Device    Boot    Start      End    Blocks  Id System
# ##i##zfs create -o mountpoint=/usr/src tank/funtoo/src
/dev/sda1          2048    264191    131072  83 Linux
# ##i##zfs create -o mountpoint=/usr/portage -o compression=off tank/funtoo/portage
/dev/sda2        264192  4458495  2097152  82 Linux swap / Solaris
# ##i##zfs create -o mountpoint=/usr/portage/distfiles tank/funtoo/portage/distfiles
/dev/sda3        4458496 625142447 310341976  83 Linux
# ##i##zfs create -o mountpoint=/usr/portage/packages tank/funtoo/portage/packages
</console>
</console>


=== Create your swap zvol ===
'''Grave a tabela de partição no disco:'''
For modern machines that have greater than 4 GB of RAM, A swap size of 2G should be enough. However if your machine doesn't have a lot of RAM, the rule of thumb is either 2x the RAM or RAM + 1 GB.
 
For this tutorial we will assume that it is a newer machine and make a 2 GB swap.


<console>
<console>
# ##i##zfs create -o sync=always -o primarycache=metadata -o secondarycache=none -o volblocksize=4K -V 2G tank/swap
Command (m for help): ##i##w
</console>
</console>
{{fancywarning|ZFS swap is not stable and should be used with precautions.}}


=== Format your swap zvol ===
Sua nova tabela de partição MBR será agora gravada no seu disco.
<console>
 
# ##i##mkswap -f /dev/zvol/tank/swap
{{Note|Você finalizou o particionamento! Agora, pule para [[#Criando os filesystems|Criando os filesystems]].}}
# ##i##swapon /dev/zvol/tank/swap
</console>


Now we will continue to install funtoo.
==== Método Moderno (UEFI/GPT)  ====


== Installing Funtoo ==
{{Note|Use esse método se você estiver inicializando usando o UEFI, e se o menu de boot do seu System Rescue CD initial boot for preto e branco. Se for azul claro, esse método não funcionará.}}


=== Pre-Chroot ===
Utilize o comando <tt>gdisk</tt> para criar uma tabela de partição GPT como a seguir. Adapte tamanhos conforme necessário, embora esse padrões funcionarão para a maioria dos  suários. Inicie o <code>gdisk</code>:


<console>
<console>
Go into the directory that you will chroot into
# ##i##gdisk
# ##i##cd /mnt/funtoo
 
Make a boot folder and mount your boot drive
# ##i##mkdir boot
# ##i##mount /dev/sda1 boot
</console>
</console>


[[Funtoo_Linux_Installation|Now download and extract the Funtoo stage3 ...]]
Dentro do <tt>gdisk</tt>, Siga esses passos:


Once you've extracted the stage3, do a few more preparations and chroot into your new funtoo environment:
'''Crie uma uma nova tabela de partição vazia''' (Isso ''apagará'' todos os dados no seu disco quando salvo):


<console>
<console>
Bind the kernel related directories
Command: ##i##o ↵
# ##i##mount -t proc none proc
This option deletes all partitions and creates a new protective MBR.
# ##i##mount --rbind /dev dev
Proceed? (Y/N): ##i##y ↵
# ##i##mount --rbind /sys sys
 
Copy network settings
# ##i##cp -f /etc/resolv.conf etc
 
Make the zfs folder in 'etc' and copy your zpool.cache
# ##i##mkdir etc/zfs
# ##i##cp /etc/zfs/zpool.cache etc/zfs
 
Chroot into Funtoo
# ##i##env -i HOME=/root TERM=$TERM chroot . bash -l
</console>
</console>


=== In Chroot ===
'''Crie a 1ª Partiçaõ''' (boot):


<console>
<console>
Create a symbolic link to your mountpoints
Command: ##i##n ↵
# ##i##ln -sf /proc/mounts /etc/mtab
Partition Number: ##i##1 ↵
 
First sector: ##i##
Sync your tree
Last sector: ##i##+500M ↵
# ##i##emerge --sync
Hex Code: ##i##
</console>
</console>


=== Add filesystems to /etc/fstab ===
'''Crie a 2ª Partição''' (swap):
 
Before we continue to compile and or install our kernel in the next step, we will edit the <tt>/etc/fstab</tt> file because if we decide to install our kernel through portage, portage will need to know where our <tt>/boot</tt> is, so that it can place the files in there.
 
Edit <tt>/etc/fstab</tt>:
 
<pre>
# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>
 
/dev/sda1              /boot          ext2            defaults        0 2
/dev/zvol/tank/swap     none            swap            sw              0 0
</pre>
 
== Kernel Configuration ==
...wip
 
== Installing the ZFS userspace tools and kernel modules ==
Emerge {{Package|sys-fs/zfs}}. This package will bring in {{Package|sys-kernel/spl}}, and {{Package|sys-fs/zfs-kmod}} as its dependencies:


<console>
<console>
# ##i##emerge zfs
Command: ##i##n ↵
Partition Number: ##i##2 ↵
First sector: ##i##↵
Last sector: ##i##+4G ↵
Hex Code: ##i##8200 ↵
</console>
</console>


Check to make sure that the zfs tools are working. The <code>zpool.cache</code> file that you copied before should be displayed.
'''Create 3ª Partição''' (root):


<console>
<console>
# ##i##zpool status
Command: ##i##n ↵
# ##i##zfs list
Partition Number: ##i##3 ↵
First sector: ##i##↵
Last sector: ##i##↵##!i## (for rest of disk)
Hex Code: ##i##
</console>
</console>


If everything worked, continue.
Ao longo do caminho, você pode digitar "<tt>p</tt>" e apertar Enter para visualizar a tabela de partição atual. Se você cometar algum engano, você pode digitar "<tt>d</tt>" tuma partição existente que você criou. Quando estiver satisfeito com sua definição de partição, digite "<tt>w</tt>" para gravar sua configuração no disco:


== Create the initramfs ==
'''Gravar a Tabela de Partição no Disco''':
There are two ways to do this, you can use "genkernel" or "bliss-initramfs". Both will be shown.


=== genkernel ===
Install genkernel and run it:
<console>
<console>
# ##i##emerge genkernel
Command: ##i##w ↵
Do you want to proceed? (Y/N): ##i##Y ↵
</console>


You only need to add --luks if you used encryption
A tabela de partição será agora gravada em disco e o <tt>gdisk</tt> será fechado.
# ##i##genkernel --zfs --luks initramfs
</console>


== Installing & Configuring the Bootloader ==
Agora, suas partições GPT/GUID foram criadas, e será exibido os seguintes ''dispositivos de bloco''  (''block devices'') no Linux:


=== GRUB 2  ===
* <tt>/dev/sda1</tt>, which will be used to hold the <tt>/boot</tt> filesystem,
<console>
* <tt>/dev/sda2</tt>, which will be used for swap space, and
# ##i##emerge grub
* <tt>/dev/sda3</tt>, which will hold your root filesystem.
</console>


You can check that grub is version 2.00 by typing the following command:
==== Criando os filesystems ====


<console>
{{Note|Essa seção cobre tanto instalação pelo  BIOS ''quanto pelo'' UEFI. Não pule esse passo!}}
# ##i##grub-install --version
grub-install (GRUB) 2.00
</console>


Now install grub to the drive itself (not a partition):
Antes que a suas partições recém-criadas possam ser utilizada, os dispositivos de bloco precisam ser inicializados com os '''metadados'' sistema de arquivos (filesystem ''metadata''). Esse processi é conhecido como ''criar um sistema de arquivo'' (''creating a filesystem'') nos dispositivos de bloco. Depois que os filesystems são criados nos dispositivos de bloco, eles podem ser montados e utilizados para armazenar arquivos.
<console>
# ##i##grub-install /dev/sda
</console>


You should receive the following message:
Vamos deixar isso de forma simples. Você vai utilizar partições MBR a moda antiga? Se sim, vamos criar um sistema de arquivo ext2 em /dev/sda1:


<console>
<console>
Installation finished. No error reported.
# ##i##mkfs.ext2 /dev/sda1
</console>
</console>


You should now see some a grub directory with some files inside your /boot folder:
Se for utilizar partições GPT modernas para o UEFI, você precisará criar um sistema de arquivos vfat no /dev/sda1, por isso é o que o UEFI é capaz de ler:


<console>
<console>
# ##i##ls -l /boot/grub
# ##i##mkfs.vfat -F 32 /dev/sda1
total 2520
-rw-r--r-- 1 root root    1024 Jan  4 16:09 grubenv
drwxr-xr-x 2 root root    8192 Jan 12 14:29 i386-pc
drwxr-xr-x 2 root root    4096 Jan 12 14:28 locale
-rw-r--r-- 1 root root 2555597 Feb  4 11:50 unifont.pf2
</console>
</console>


=== boot-update ===
Agora, vamos criar uma partição swap. Essa partição será criada para ser utilizada como memoria virtual com base no disco (disk-based virtual memory) para o seu sistema Funtoo Linux.
boot-update comes as a dependency of grub2, so if you already installed grub, it's already on your system!


==== Genkernel ====
Você criará um sistema de arquivos na sia partição swap, desde não seja utilizada para armazenar arquivos. Mas é necessário inicializá-la utilizando o comando <code>mkswap</code> command. Depois vamos executar o comando <code>swapon</code> para tornar o seu recém inicializado espaço swap imediadamente ativo  dentro do ambiente live CD, nesse caso isso é necessário durante o resto do processo de instalação:
If your using genkernel you must add 'real_root=ZFS=<root>' and 'dozfs' to your params.
Example entry for <tt>/etc/boot.conf</tt>:
 
<pre>
"Funtoo ZFS" {
        kernel vmlinuz[-v]
        initrd initramfs-genkernel-x86_64[-v]
        params real_root=ZFS=tank/funtoo/root
        params += dozfs=force
        # Also add 'params += crypt_root=/dev/sda3' if you used encryption
        # Adjust the above setting to your system if needed
 
        # You should also add 'root=none' to your params (not 'params +=') if you plan to use it along with boot-update
        # If root variable will not be set, boot-update will fail to generate boot.conf
        # This is right for <=sys-boot/boot-update-1.6.11 on 16.08.2014 date
}
</pre>
 
After editing /etc/boot.conf, you just need to run boot-update to update grub.cfg


<console>
<console>
###i## boot-update
# ##i##mkswap /dev/sda2
# ##i##swapon /dev/sda2
</console>
</console>


=== LILO (Optional if you are using another bootloader) ===
Agora, precisamos criar um sistema de arquivos root. É alí aonde o Funtoo Linux vai morar. Geralmente recomendamos sistemas de arquivos root ext4 ou XFS. Se não estiver certo, escola o  ext4. Aqui está como criar um sistema de arquivos root ext4:
Now that bliss-boot generated the lilo.conf file, move that config file to its appropriate location
and install lilo to the MBR:


<console>
<console>
# ##i##mv lilo.conf /etc
# ##i##mkfs.ext4 /dev/sda3
# ##i##lilo
 
You should see the following:
 
Warning: LBA32 addressing assumed
Added Funtoo + *
One warning was issued
</console>
</console>


== Final configuration ==
...e aqui está como criar um sistema de arquivos root XFS, se você escolher utilizar o XFS:
=== Add the zfs tools to openrc ===
<console># ##i##rc-update add zfs boot</console>
 
=== Clean up and reboot ===
We are almost done, we are just going to clean up, '''set our root password''', and unmount whatever we mounted and get out.


<console>
<console>
Delete the stage3 tarball that you downloaded earlier so it doesn't take up space.
# ##i##mkfs.xfs /dev/sda3
# ##i##cd /
</console>
# ##i##rm stage3-latest.tar.xz


Set your root password
Seus sistemas de arquivos (e o swap) foram todos inicializados, então dessa forma podem ser montados (anexados á sua hierarquia de diretório existente) e utilizado para armazenar arquivos. Estamos prontos para instalar o Funtoo Linux nesses sistemas de arquivos novinhos em folha.
# ##i##passwd
>> Enter your password, you won't see what you are writing (for security reasons), but it is there!


Get out of the chroot environment
{{fancywarning|1=
# ##i##exit
Quando implantar um host OpenVZ, por favor utilize exclusivamente o ext4. A equipe de desenvolvimento paralelos testa extensi extensivamente com o ext4, e versões mais modernas do  <code>openvz-rhel6-stable</code> ''não'' são compatíveis com o XFS, e você pode experimentar kernel bugs.
}}


Unmount all the kernel filesystem stuff and boot (if you have a separate /boot)
==== Montando os filesystems ====
# ##i##umount -l proc dev sys boot


Turn off the swap
Monte os recem-criados filesystems como a seguir, criando <code>/mnt/funtoo</code> como ponto de montagem da instalação:
# ##i##swapoff /dev/zvol/tank/swap


Export the zpool
<console>
# ##i##cd /
# ##i##mkdir /mnt/funtoo
# ##i##zpool export tank
# ##i##mount /dev/sda3 /mnt/funtoo
 
# ##i##mkdir /mnt/funtoo/boot
Reboot
# ##i##mount /dev/sda1 /mnt/funtoo/boot
# ##i##reboot
</console>
</console>


{{fancyimportant|'''Don't forget to set your root password as stated above before exiting chroot and rebooting. If you don't set the root password, you won't be able to log into your new system.'''}}
Opcionalmente, se você tiver um filesystem separado para <code>/home</code> ou qualquer outro diretório:
 
and that should be enough to get your system to boot on ZFS.


== After reboot ==
=== Forgot to reset password? ===
==== System Rescue CD ====
If you aren't using bliss-initramfs, then you can reboot back into your sysresccd and reset through there by mounting your drive, chrooting, and then typing passwd.
Example:
<console>
<console>
# ##i##zpool import -f -R /mnt/funtoo tank
# ##i##mkdir /mnt/funtoo/home
# ##i##chroot /mnt/funtoo bash -l
# ##i##mount /dev/sda4 /mnt/funtoo/home
# ##i##passwd
# ##i##exit
# ##i##zpool export -f tank
# ##i##reboot
</console>
</console>


==== Using bliss-initramfs ====
Se você tiver <code>/tmp</code> ou <code>/var/tmp</code> em um filesystem separado, certifique-se de alterar as permissões do ponto de montagem para ser globalmente legível depois de montar, como se segue:
If you forgot to reset your password and are using '''bliss-initramfs''', you can add the '''su''' option to your bootloader parameters and the initramfs will throw you into the rootfs of your drive. In there you can run 'passwd' and then type 'exit'. Once you type 'exit', the initramfs will continue to boot your system as normal.
 
=== Create initial ZFS Snapshot ===
Continue to set up anything you need in terms of /etc configurations. Once you have everything the way you like it, take a snapshot of your system. You will be using this snapshot to revert back to this state if anything ever happens to your system down the road. The snapshots are cheap, and almost instant.
 
To take the snapshot of your system, type the following:
<console># ##i##zfs snapshot -r tank@install</console>
 
To see if your snapshot was taken, type:
<console># ##i##zfs list -t snapshot</console>
 
If your machine ever fails and you need to get back to this state, just type (This will only revert your / dataset while keeping the rest of your data intact):
<console># ##i##zfs rollback tank/funtoo/root@install</console>
 
{{fancyimportant|'''For a detailed overview, presentation of ZFS' capabilities, as well as usage examples, please refer to the [[ZFS_Fun|ZFS Fun]] page.'''}}
 
== Troubleshooting ==
 
=== Starting from scratch ===
If your installation has gotten screwed up for whatever reason and you need a fresh restart, you can do the following from sysresccd to start fresh:


<console>
<console>
Destroy the pool and any snapshots and datasets it has
# ##i##chmod 1777 /mnt/funtoo/tmp
# ##i##zpool destroy -R -f tank
 
This deletes the files from /dev/sda1 so that even after we zap, recreating the drive in the exact sector
position and size will not give us access to the old files in this partition.
# ##i##mkfs.ext2 /dev/sda1
# ##i##sgdisk -Z /dev/sda
</console>
</console>
Now start the guide again :).
[[Category:HOWTO]]
[[Category:Filesystems]]
[[Category:Featured]]
[[Category:Install]]
__NOTITLE__

Revision as of 14:11, January 20, 2015

Particionamento

Prepare o Disco Rígido

Introdução

Em tempos remotos, só havia um jeito de inicializar (boot)o computador compatível com a arquitetura PC. Todos os nossos desktops e servidores tinham uma BIOS padrão, todos os nossos hard drives utilizavam Master Boot Records, e eram particionados utilizando esquema de partição MBR. E nós gostávamos disso daquele jeito mesmo!

Então, depois veio os EFI e UEFI, que são firmware em novo-estilo projetados para inicializar sistemas, junto as tabelas de partição GPT para suportar discos superiores à 2.2TB. Tudo repentino, nós tínhamos uma variedade de opções para inicializar os sistemas Linux, tornando o que uma vez era um método único de encaixe de tudo (one-method-fits-all) aproximar-se á algo muito mais complexo.

Vamos parar por um momento para rever as opções de boot disponíveis para você. Esse pequeno Guia utiliza, e recomenda, o método da BIOS à moda antiga inicializando e usando um MBR. Funciona. Não há nada de errado com ele. Se seu disco é do tamanho de 2TB ou menor, ele não vai impedir que você use toda a capacidade do seu disco, também.

Mas, há alguns situações onde o método da não é satisfatório. Se você obtiver um disco de tamando superior à 2TB, então partições MBR não o permitirão acessar todo o seu armazenamento (storage). Então essa é uma rasão. Outra rasão é que há alguns então assim chamados "PC" por aí afora que não suportam maias BIOS, e lhe força a utilizar o UEFI para inicializar. Então, sem compaixão pelas pessoas que se enquadram nessa situação, esse Guia de Instalação documenta boot pelo UEFI também.

Nossa recomandação ainda é ir pela moda antiga a não ser que tenha resão para não. Chamamos esse método de método BIOS + GRUB (MBR). Esse é o método tradicional de configurar um PC para inicilizar o Linux.

Se você precisa usar UEFI para inicilizar, recomendamos não utillizar de maneira alguma o MBR para boot, já que alguns sistemas suportam as some UEFI, mas outros não. Ao inves disso, recomendamos utilizar o UEFI para inicializar o GRUB, que carregará o Linux. Referimos a esse método como o método UEFI + GRUB (GPT).

E sim, há ainda mais, alguns aos quais estão documentados na página Boot Methods. Nós costumavamos recomendar um étodo BIOS + GRUB (GPT), mas esse não tem consistentemente suporte em uma variedade de hardware.

A grande pergunta é -- que método de boot eu devo usar? Aqui está como responder.

Princípio nº 1 - Moda antiga (Old School)
Se você pode inicializar com confiavelmente o System Rescue CD e ele exibe um menu inicial azul claro, você está inializando o CD usando a BIOS, e provavelmente você pode assim inicilizar o Funtoo Linux ussando a BIOS. Então, vá pela moda antiga e use a boot da BIO, a não ser que você tenha alguma resão para usar UEFI, tal qual ter um disco do tamando superior a 2.2TB. Nesse caso, veja o segundo Princípio nº 2, já que seu sistema pode ter suporte também à boot UEFI.
Princípio nº 2 - Moderno (New School)
Se você pode confiavelmente inicilizar o System Rescue CD e ele te exibe um menu inicial preto e branco -- parabens, seu sistema é configurado para suportar o boot via UEFI. Isso significa que você está pronto para instalar o install Funtoo Linux para inicializá-lo via UEFI. Seu sistema pode ainda ter suporte para inicilizar com a BIOS, mas somente se for testado pela UEFI primeiro. Você pode dar uma bisbilhotada na sua configuração de boot pelo BIOS e brincar com isso.
Qual pe a Grande Diferença entra a Moda Antiga e a Moderna?
Aqui está a coisa. Se você for com as as partições MBR a moda antiga, sua partição /boot será um sistema de arquivos ext2, e você utilizará fdisk para criar suas partições MBR. Se você com as partições GPT e boot via UEFI, sua partição /boot será um sistema de arquivos vfat, por que isso é o que o UEFI é capaz de ler, e você utilizará gdisk para criar suas partiçẽos GP. E você instalará o GRUB um pouco diferente. É a respeito disso que tudo vem abaixo, em caso você estivesse curioso/a.
   Note

Algumas placas mãe pode aparentar suporte a UEFI, mas não suportam. Faça sua pesquisa. Por exemplo, O BIOS atribuído na minha Gigabyte GA-990FXA-UD7 rev 1.1 tem uma opção de abilitar o boot UEFI por CD/DVD. Isso não é o sufuciente para abilitar boot via UEFI pelo hard drives e instalar o Funtoo Linux. UEFI deve ter tanto para mídia removível (assim você pode inicializar o System Rescue CD utilizando o UEFI) quanto mídias fixas (assim você pode inicializar sua nova instalação do Funtoo Linux.) Revelá-se que revisões posteriores dessa placa (rev 3.0) tem um novo BIOS que suporta completamente o boot do UEFI. Isso pode apontar para o terceiro princípio -- conheça teu hardware.

O método a moda antiga (BIOS/MBR)

   Note

Use esse método se você estiver inicializando sua BIOS, e se o o menu boot inicial do seu System Rescue CD initial estiver em azul claro. Se você for utilizar o método moderno, click aqui para saltar para o UEFI/GPT.

Preparo

Primeiro, é uma boa idea certificar-se de que encontrou o hard disk correto para particioná-lo. Tente esse comando e verifique que /dev/sda é o disco que você quer particionar:

root # fdisk -l /dev/sda

Disk /dev/sda: 640.1 GB, 640135028736 bytes, 1250263728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt


root #         Start          End    Size  Type            Name
 1         2048   1250263694  596.2G  Linux filesyste Linux filesystem

Agora, é recomendado que você apague quaisquer tabelas de partição MBR ou GPT existente no disco, que poderiam confundir o BIOS do sistema no momento da inicialização. Fazemos isso utilizando sgdisk:

   Warning

Isso tornará quaisquer partições existentes inacessiveis! É formente lhe aconcelhado advetido realizar backup de qualquer dado crítico antes de prosseguir.

root # sgdisk --zap-all /dev/sda

Creating new GPT entries.
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.

Essa saída també não é nada para se preocupar, desde que o comando ainda foi bem sucedido:

***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. 
***************************************************************
Particionamento

Agora usaremos fdisk para criar a tabela de partição MBR e as partições:

root # fdisk /dev/sda

Dentro do fdisk, siga esses passos:

Esvazie a tabela de partição:

Command (m for help): o ↵

Crie a primeira Partição (boot):

Command (m for help): n ↵
Partition type (default p): 
Partition number (1-4, default 1): 
First sector: 
Last sector: +128M ↵

Crie a segunda Partição (swap):

Command (m for help): n ↵
Partition type (default p): 
Partition number (2-4, default 2): 
First sector: 
Last sector: +2G ↵
Command (m for help): t ↵ 
Partition number (1,2, default 2): 
Hex code (type L to list all codes): 82 ↵

Crie a partição root:

Command (m for help): n ↵
Partition type (default p): 
Partition number (3,4, default 3): 
First sector: 
Last sector: 

Verifique a tabela de partição:

Command (m for help): p

Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x82abc9a6

Device    Boot     Start       End    Blocks  Id System
/dev/sda1           2048    264191    131072  83 Linux
/dev/sda2         264192   4458495   2097152  82 Linux swap / Solaris
/dev/sda3        4458496 625142447 310341976  83 Linux

Grave a tabela de partição no disco:

Command (m for help): w

Sua nova tabela de partição MBR será agora gravada no seu disco.

   Note

Você finalizou o particionamento! Agora, pule para Criando os filesystems.

Método Moderno (UEFI/GPT)

   Note

Use esse método se você estiver inicializando usando o UEFI, e se o menu de boot do seu System Rescue CD initial boot for preto e branco. Se for azul claro, esse método não funcionará.

Utilize o comando gdisk para criar uma tabela de partição GPT como a seguir. Adapte tamanhos conforme necessário, embora esse padrões funcionarão para a maioria dos suários. Inicie o gdisk:

root # gdisk

Dentro do gdisk, Siga esses passos:

Crie uma uma nova tabela de partição vazia (Isso apagará todos os dados no seu disco quando salvo):

Command: o ↵
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y ↵

Crie a 1ª Partiçaõ (boot):

Command: n ↵
Partition Number: 1 ↵
First sector: 
Last sector: +500M ↵
Hex Code: 

Crie a 2ª Partição (swap):

Command: n ↵
Partition Number: 2 ↵
First sector: 
Last sector: +4G ↵
Hex Code: 8200 ↵

Create 3ª Partição (root):

Command: n ↵
Partition Number: 3 ↵
First sector: 
Last sector:  (for rest of disk)
Hex Code: 

Ao longo do caminho, você pode digitar "p" e apertar Enter para visualizar a tabela de partição atual. Se você cometar algum engano, você pode digitar "d" tuma partição existente que você criou. Quando estiver satisfeito com sua definição de partição, digite "w" para gravar sua configuração no disco:

Gravar a Tabela de Partição no Disco:

Command: w ↵
Do you want to proceed? (Y/N): Y ↵

A tabela de partição será agora gravada em disco e o gdisk será fechado.

Agora, suas partições GPT/GUID foram criadas, e será exibido os seguintes dispositivos de bloco (block devices) no Linux:

  • /dev/sda1, which will be used to hold the /boot filesystem,
  • /dev/sda2, which will be used for swap space, and
  • /dev/sda3, which will hold your root filesystem.

Criando os filesystems

   Note

Essa seção cobre tanto instalação pelo BIOS quanto pelo UEFI. Não pule esse passo!

Antes que a suas partições recém-criadas possam ser utilizada, os dispositivos de bloco precisam ser inicializados com os 'metadados sistema de arquivos (filesystem metadata). Esse processi é conhecido como criar um sistema de arquivo (creating a filesystem) nos dispositivos de bloco. Depois que os filesystems são criados nos dispositivos de bloco, eles podem ser montados e utilizados para armazenar arquivos.

Vamos deixar isso de forma simples. Você vai utilizar partições MBR a moda antiga? Se sim, vamos criar um sistema de arquivo ext2 em /dev/sda1:

root # mkfs.ext2 /dev/sda1

Se for utilizar partições GPT modernas para o UEFI, você precisará criar um sistema de arquivos vfat no /dev/sda1, por isso é o que o UEFI é capaz de ler:

root # mkfs.vfat -F 32 /dev/sda1

Agora, vamos criar uma partição swap. Essa partição será criada para ser utilizada como memoria virtual com base no disco (disk-based virtual memory) para o seu sistema Funtoo Linux.

Você criará um sistema de arquivos na sia partição swap, desde não seja utilizada para armazenar arquivos. Mas é necessário inicializá-la utilizando o comando mkswap command. Depois vamos executar o comando swapon para tornar o seu recém inicializado espaço swap imediadamente ativo dentro do ambiente live CD, nesse caso isso é necessário durante o resto do processo de instalação:

root # mkswap /dev/sda2
root # swapon /dev/sda2

Agora, precisamos criar um sistema de arquivos root. É alí aonde o Funtoo Linux vai morar. Geralmente recomendamos sistemas de arquivos root ext4 ou XFS. Se não estiver certo, escola o ext4. Aqui está como criar um sistema de arquivos root ext4:

root # mkfs.ext4 /dev/sda3

...e aqui está como criar um sistema de arquivos root XFS, se você escolher utilizar o XFS:

root # mkfs.xfs /dev/sda3

Seus sistemas de arquivos (e o swap) foram todos inicializados, então dessa forma podem ser montados (anexados á sua hierarquia de diretório existente) e utilizado para armazenar arquivos. Estamos prontos para instalar o Funtoo Linux nesses sistemas de arquivos novinhos em folha.

   Warning

Quando implantar um host OpenVZ, por favor utilize exclusivamente o ext4. A equipe de desenvolvimento paralelos testa extensi extensivamente com o ext4, e versões mais modernas do openvz-rhel6-stable não são compatíveis com o XFS, e você pode experimentar kernel bugs.

Montando os filesystems

Monte os recem-criados filesystems como a seguir, criando /mnt/funtoo como ponto de montagem da instalação:

root # mkdir /mnt/funtoo
root # mount /dev/sda3 /mnt/funtoo
root # mkdir /mnt/funtoo/boot
root # mount /dev/sda1 /mnt/funtoo/boot

Opcionalmente, se você tiver um filesystem separado para /home ou qualquer outro diretório:

root # mkdir /mnt/funtoo/home
root # mount /dev/sda4 /mnt/funtoo/home

Se você tiver /tmp ou /var/tmp em um filesystem separado, certifique-se de alterar as permissões do ponto de montagem para ser globalmente legível depois de montar, como se segue:

root # chmod 1777 /mnt/funtoo/tmp