Difference between revisions of "Install from existing Linux (Português)"

From ArchWiki
Jump to: navigation, search
(Tips and tricks)
(Update translation - sync with English article until October 24, 2018)
 
(42 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:Getting and installing Arch (Português)]]
+
[[Category:Installation process (Português)]]
[[en:Install from Existing Linux]]
+
[[en:Install from existing Linux]]
[[de:Schnellinstallation von einem bestehenden Linuxsystem]]
+
[[es:Install from existing Linux]]
[[es:Install from Existing Linux]]
 
 
[[fr:Install chroot]]
 
[[fr:Install chroot]]
[[it:Install from Existing Linux]]
+
[[it:Install from existing Linux]]
[[ru:Install from Existing Linux]]
+
[[ja:既存の Linux からインストール]]
[[uk:Install from Existing Linux]]
+
[[ru:Install from existing Linux]]
[[zh-CN:Install from Existing Linux]]
+
[[zh-hans:Install from existing Linux]]
[[zh-TW:Install from Existing Linux]]
+
[[zh-hant:Install from existing Linux]]
Este guia é direcionado a qualquer um que deseja instalar o Arch Linux em outro Linux já existente - - seja através de um LiveCD ou de uma distribuição Linux diferente já existente.
+
{{StatusTradução|Install from existing Linux|2018-10-24|545306}}
 +
{{Related articles start (Português)}}
 +
{{Related|Instalar a partir de SSH}}
 +
{{Related articles end}}
 +
Este documento descreve o processo de inicialização necessário para instalar o Arch Linux a partir de um sistema host Linux em execução.
 +
Após o bootstrapping, a instalação prossegue conforme descrito no [[guia de instalação]].
  
É util para quem deseja:
+
Instalar o Arch Linux de um Linux existente é útil para:
* Instalar o Arch Linux de forma remota
 
* Criar uma nova distribuição ou LiveCD baseado no Arch Linux
 
* Criar um ambiente de chroot
 
* [[Diskless_network_boot_NFS_root|rootfs-over-NFS para terminais burros]]
 
  
Este guia tem como pré-requisito a existência de um ambiente capaz de executar os programas compilados para a arquitetura escolhida no Arch Linux. Neste caso, um host x86_64 é capaz de utilizar o i686-pacman para construir um ambiente de chroot de 32-bits. Veja [[Arch64 Install bundled 32bit system]]. Contudo, não é algo trivial criar um ambiente 64-bit quando o host em execução está utilizando programas 32-bit.
+
* instalar remotamente o Arch Linux, p.ex. um servidor raiz (virtual)
 +
* substituir um Linux existente sem um LiveCD (ver [[#Substituindo o sistema existente sem um LiveCD]])
 +
* criar uma nova distribuição ou LiveCD baseado no Arch Linux
 +
* criar um ambiente de chroot do Arch Linux, p.ex.: contêiner base de Docker
 +
* [[Diskless network boot NFS root|rootfs-over-NFS para terminais burros]]
  
{{Nota|Se você já está utilizando o Arch, ao invés de seguir este guia apenas instale o pacote {{Pkg|arch-install-scripts}} dos repositórios oficiais e siga o [[Installation Guide (Português)|Guia de Instalação]]}}
+
O objetivo do procedimento de inicialização é configurar um ambiente a partir do qual os scripts do {{Pkg|arch-install-scripts}} (como o {{ic|pacstrap}} e {{ic|arch-chroot}}) podem ser executados.
  
'''Este guia adiciona passos ao [[Installation Guide (Português)|Guia de Instalação]]. Os passos já descridos no guia de instalação devem ser seguidos sempre que necessários.'''
+
Se o sistema hospedeiro funciona no Arch Linux, isso pode ser conseguido simplesmente instalando {{pkg|arch-install-scripts}}. Se o sistema hospedeiro executar outra distribuição Linux, primeiro você precisará configurar um chroot baseado no Arch Linux.
  
==Preparar o sistema==
+
{{Nota|Este guia exige que o sistema hospedeiro existente seja capaz de executar os novos programas de arquitetura do Arch Linux alvo. Isso significa que tem que ser uma máquina x86_64.}}
Siga as instruções no [[Installation Guide (Português)|Guia de Instalação]] até que você tenha ajustado partições, teclado e conexão com a internet.
 
  
==Configurar o ambiente do Pacman==
+
{{Atenção|Certifique-se de compreender cada passo antes de prosseguir. É fácil destruir seu sistema ou perder dados críticos, e seu provedor de serviços provavelmente cobrará muito para ajudá-lo a recuperar.}}
Você precisa criar um ambiente onde o ''pacman'' e os ''arch istall scripts'' possam rodar em sua distribuição.(Se você escolher o método 1, apenas o pacman será necessário)
 
  
A princípio, existem dois métodos diferentes de preparar o ambiente: '''instalando o pacman nativamente (método 4 abaixo)''' em sua distribuição ou criando um '''ambiente de chroot'''.
+
== Backup e preparação ==
A segunda opção tende a ser a mais fácil, e será discutida em seguida:
+
Faça backup de todos os seus dados, incluindo correios, servidores web, etc. Tenha todas as informações ao seu alcance. Preserve todas as configurações do seu servidor, hsotnames, etc.
  
Duas são as formas possíveis de se utilizar o método do ''chroot'':
+
Aqui está uma lista de dados que você provavelmente precisará:
* '''Utilizando o chroot como um ambiente de instalação''': O ambiente de chroot Archlinux preparado será utilizado temporariamente para criar a instalação do Archlinux através do ''arch-install-scripts''. O trabalho inicial pode ser mais demorado, porém, quando o ambiente estiver pronto, vários sistemas Archlinux podem ser criados com uma facilidade e rapidez imensa. Se você deseja fazer uma instalação única, este método pode parecer desperdício. Você configurará duas vezes o mesmo sistema, terá um grande tráfego de rede e utilizara muito mais RAM, por conta deste processo.
+
* Endereço IP
 +
* hostname(s), (nota: servidores raiz são principalmente também parte do domínio dos provedores, verifique ou salve seu {{ic|/etc/hosts}} antes de excluir)
 +
* Servidor DNS (verifique {{ic|/etc/resolv.conf}})
 +
* Chaves SSH (se outras pessoas trabalham no seu servidor, elas terão de aceitar novas chaves, caso contrário. Isso inclui chaves do seu Apache, seus servidores de e-mail, seu servidor SSH e outros.)
 +
* Informações de hardware (placa de rede, etc. Consulte o seu {{ic|/etc/modules.conf}} pré-instalado)
 +
* Arquivos de configuração Grub.
  
* '''Instalar o Archlinux diretamente/Bootstrapping direto''': Graças ao script ''arch-bootstrap'' criado por tokland, este método é eficiente e muito rápido. Após uma simples linha de código, o sistema base inteiro do Archlinux estará instalado no disco. '''Contudo''', se você deseja instalar o Archlinux em diversas máquinas este método será mais demorado, pois requer o re-download de todos os pacotes a cada nova instalação.
+
Em geral, é uma boa ideia ter uma cópia local do diretório original {{ic|/etc}} no seu disco rígido local.
  
A melhor aplicação do '''Bootstrapping direto''' é em uma rede com um número reduzido de sistemas. Se você pretende instalar o Archlinux em muitos sistemas, a instalação via '''ambiente chroot''' ou mesmo o '''pacman nativo''' pode ser muito mais vantajoso.
+
== De um host executando o Arch Linux ==
  
===Método 1: Chroot em uma imagem LiveCD===
+
Instale o pacote {{Pkg|arch-install-scripts}}.
  
Este é o método recomendado.
+
Siga [[Guia de instalação#Montar os sistemas de arquivos]]. Se você  já usa o diretório {{ic|/mnt}} para alguma outra coisa, basta criar outro diretório como {{ic|/mnt/install}} e usá-lo.
  
É possível montar a imagem da ultima mídia de instalação do Archlinux e então, entrar nela através de chroot. Este método possui a vantagem de dar a você um sistema com todos os requisitos necessários, sem que pacotes adicionais precisem ser instalados.
+
Então, siga [[Guia de instalação#Instalação]]. Você pode pular [[Guia de instalação#Selecionar os espelhos]], que o host já deve ter a lista de espelhos correta.
  
{{Nota|Antes de iniciar este procedimento, certifique de possuir a última versão do pacote {{Pkg|squashfs-tools}} no sistema em execução. Caso contrário, você poderá receber erros como: {{ic|FATAL ERROR aborting: uncompress_inode_table: failed to read block}}.}}
+
{{Dica|Para evitar baixar novamente todos os pacotes, considere seguir [[Pacman/Dicas e truques#Cache do pacman compartilhado na rede]] ou usara opção {{ic|-c}} do ''pacstrap''.}}
  
* Baixe a última imagem de instalação de https://www.archlinux.org/download/
+
{{Dica|Quando o gerenciador de boot Grub é usado, o comando {{ic|grub-mkconfig}} pode detectar dispositivos incorretamente. Isso resultará no erro {{ic|Erro:nenhuma partição}} ao tentar inicializar a partir do pendrive. Para resolver este problema, a partir do host executando o Arch Linux, monte as partições recém-instaladas, use {{ic|arch-chroot}} na nova partição, depois instale e configure o grub. A última etapa pode requerer a desativação de {{ic|lvmetad}} do {{ic|/etc/lvm/lvm.conf}} configurando {{ic|1=use_lvmetad=0}}.}}
  
* Monte a imagem LiveCD
+
{{Merge|Moving an existing install into (or out of) a virtual machine#Moving into a VM|Mesma abordagem.|Talk:Install from existing Linux}}
{{bc|# mount -o loop archlinux-{date}-dual.iso /mnt}}
 
  
* A raiz da imagem possui o [[Wikipedia:Squashfs|formato squashfs]] dentro do CD. O squashfs não é editável então, você precisa utilizar o unsquash para ter acesso a imagem raiz para aí então, montá-la.
+
{{Nota|Se você quiser apenas criar uma cópia exata de uma instalação do Arch existente, também é possível copiar o sistema de arquivos para a nova partição. Com este método, você ainda precisará
  
Para executar um unsquash da imagem de arquitetura x86_64 (ou i686 respectivamente) rode
+
* Criar [[Guia de instalação#Fstab|{{ic|/etc/fstab}}]] e editar {{ic|/etc/hostname}}
{{bc|# unsquashfs -d /squashfs-root /mnt/arch/x86_64/root-image.fs.sfs}}
+
* Excluir {{ic|/etc/machine-id}} de forma que um novo, único, será gerado na inicialização
 +
* Fazer quaisquer outras alterações apropriadas à mídia de instalação
 +
* Instalar o gerenciador de inicialização ''(bootloader)''
  
* Agora, você pode desmontar e remover a imagem iso
+
Ao copiar o sistema de arquivos raiz, use alguma coisa como {{ic|cp -ax}} ou {{ic|rsync -axX}}. Isso evita copiar conteúdo dos pontos de montagem ({{ic|-x}}) e preserve os atributos de  [[capabilities|capacidades]] de alguns sistemas binários ({{ic|rsync -X}}).
 +
}}
 +
 
 +
== De um host executando outra distribuição Linux ==
 +
 
 +
Existem várias ferramentas que automatizam uma grande parte das etapas descritas nas subseções a seguir. Consulte as respectivas páginas para obter instruções detalhadas.
 +
 
 +
* [https://github.com/tokland/arch-bootstrap arch-bootstrap] (Bash)
 +
* [https://github.com/m4rienf/ArchCX archcx] (Bash, do Hetzner CX Rescue System)
 +
* [https://github.com/gh2o/digitalocean-debian-to-arch digitalocean-debian-to-arch] (disco de repartição, específico para DigitalOCean)
 +
* [https://github.com/hartwork/image-bootstrap image-bootstrap] (Python)
 +
* [https://gitlab.com/drizzt/vps2arch vps2arch] (Bash)
 +
 
 +
A maneira manual é apresentada nas seguintes subseções. A ideia é fazer o [[pacman (Português)|pacman]] funcionar diretamente no sistema hospedeiro ou executar um sistema Arch dentro do sistema host, com a instalação real sendo executada a partir do sistema Arch. O sistema aninhado está contido dentro de um chroot.
 +
 
 +
=== Usando pacman do sistema hospedeiro ===
 +
 
 +
O [https://git.archlinux.org/pacman.git/ Pacman] pode ser compilado na maioria das distribuições Linux e usado diretamente no sistema hospedeiro para inicializar o Arch Linux. O [https://git.archlinux.org/arch-install-scripts.git/about/ arch-install-scripts] deve ser executado sem problemas diretamente dos fontes baixados em qualquer distribuição recente.
 +
 
 +
Algumas distribuições fornecem um pacote pacman em seus repositórios oficiais, que podem ser usados para essa finalidade. Em junho de 2018, o Gentoo e o Fedora são conhecidos por fazer isso. O Fedora também fornece o ''arch-install-scripts''.
 +
 
 +
=== Criando um chroot ===
 +
 
 +
Dois métodos para configurar e entrar no chroot são apresentados abaixo, do mais fácil ao mais complicado. Selecione apenas um dos dois métodos. Então, continue em [[#Usando um ambiente chroot]].
 +
 
 +
==== Método A: Usando a imagem do bootstrap (recomendado) ====
 +
 
 +
Baixe a imagem ''bootstrap'' de um [https://www.archlinux.org/download espelho] (''mirror'') em {{ic|/tmp}}.
 +
 
 +
Você também pode baixar a assinatura (mesma URL com {{ic|.sig}} adicionado) e [[GnuPG#Verify_a_signature|verificá-la com GnuPG]].
 +
 
 +
Extraia o tarball:
 +
# tar xzf <caminho-para-imagem-bootstrap>/archlinux-bootstrap-*-x86_64.tar.gz
 +
 
 +
Selecione um servidor de repositório editando {{ic|/tmp/root.x86_64/etc/pacman.d/mirrorlist}}.
 +
 
 +
Entre no ''chroot''
 +
 
 +
* Se bash 4 ou posterior estiver instalado, e unshare tiver suporte às opções --fork e --pid:
 +
# /tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/
 +
* Do contrário, execute os seguintes comandos:
 +
# mount --bind /tmp/root.x86_64 /tmp/root.x86_64
 +
# cd /tmp/root.x86_64
 +
# cp /etc/resolv.conf etc
 +
# mount -t proc /proc proc
 +
# mount --make-rslave --rbind /sys sys
 +
# mount --make-rslave --rbind /dev dev
 +
# mount --make-rslave --rbind /run run    # (presumindo que /run existe no sistema)
 +
# chroot /tmp/root.x86_64 /bin/bash
 +
 
 +
==== Método B: Usando a imagem LiveCD ====
 +
 
 +
É possível montar a imagem raiz da mídia mais recente de instalação do Arch Linux e, em seguida, fazer ''chroot'' nela. Este método tem a vantagem de fornecer uma instalação funcional do Arch Linux no direito do sistema host sem a necessidade de prepará-lo instalando pacotes específicos.
 +
 
 +
{{Nota|Antes de prosseguir, verifique se a versão mais recente de [http://squashfs.sourceforge.net/ squashfs] está instalada no sistema host. Caso contrário, esperam-se erros como os a seguir: {{ic|FATAL ERROR aborting: uncompress_inode_table: failed to read block}}.}}
 +
 
 +
* A imagem raiz pode ser encontrada em um dos [https://www.archlinux.org/download espelhos] em {{ic|arch/x86_64/}}. O formato squashfs não é editável, portanto, desfazemos o "squash" na imagem raiz e a montamos.
 +
 
 +
* Para fazer um "unsquash" na imagem raiz, execute
 +
{{bc|# unsquashfs airootfs.sfs}}
 +
 
 +
* Antes de fazer [[chroot (Português)|chroot]] para ela, precisamos configurar alguns pontos de montagem e copiar o resolv.conf para conectividade.
 
{{bc|
 
{{bc|
# umount /mnt
+
# mount --bind squashfs-root squashfs-root
# rm archlinux-{date}-dual.iso
+
# mount -t proc none squashfs-root/proc
 +
# mount -t sysfs none squashfs-root/sys
 +
# mount -o bind /dev squashfs-root/dev
 +
# mount -o bind /dev/pts squashfs-root/dev/pts  ## importante para o pacman (para verificação de assinatura)
 +
# cp -L /etc/resolv.conf squashfs-root/etc  ## Isso é necessário para usar conectividade com o chroot
 
}}
 
}}
  
* Monte a imagem raiz através da opção loop
+
* Agora, tudo está preparado para fazer chroot para dentro do ambiente Arch recém-instalado
{{bc|# mount -o loop /squashfs-root/root-image.fs /arch}}
+
{{bc|# chroot squashfs-root bash}}
 +
 
 +
=== Usando um ambiente chroot ===
 +
 
 +
O ambiente ''bootstrap'' é realmente minimalista (sem {{ic|nano}}, sem {{ic|ping}}, sem {{ic|cryptsetup}}, sem {{ic|lvm}}). Portanto, precisamos configurar o [[pacman (Português)|pacman]] para baixar o resto da {{ic|base}} e, se necessário, {{ic|base-devel}}.
 +
 
 +
==== Inicializando o chaveiro do pacman ====
  
* Antes de executar o [[Change Root|chrooting]] para o interior da imagem, precisaremos configurar alguns pontos de montagem adicionais,
+
Antes de iniciar a instalação, as chaves do pacman precisam ser configuradas. Antes de executar os dois comandos a seguir, leia [[pacman-key (Português)#Inicializando o chaveiro]] para entender os requisitos de entropia:
 
{{bc|
 
{{bc|
# mount -t proc none /arch/proc
+
# pacman-key --init
# mount -t sysfs none /arch/sys
+
# pacman-key --populate archlinux
# mount -o bind /dev /arch/dev
 
# mount -o bind /dev/pts /arch/dev/pts # important for pacman (for signature check)
 
 
}}
 
}}
  
* Agora tudo está preparado para que você dê um chroot no seu ambiente de instalação do Arch.
+
{{Dica|A instalação e execução {{Pkg|haveged}} deve ser feito no sistema hospedeiro, já que não é possível instalar pacotes antes de inicializar o chaveiro do pacman e porque ''systemd'' vai detectar que está sendo executado em um ''chroot'' e [https://superuser.com/questions/688733/start-a-systemd-service-inside-chroot vai ignorar requisição de ativação].
{{bc|# chroot /arch bash}}
+
 
 +
Se você for executar {{ic|ls -Ra /}} em outro console (TTY, terminal, sessão SSH...), não tenha medo de executá-lo em um loop algumas vezes: cinco ou seis execuções do hospedeiro provou ser suficiente para gerar entropia suficiente em um servidor burro remoto.}}
 +
 
 +
==== Selecionando um espelho e baixando ferramentas básicas ====
 +
 
 +
Após [[Espelhos#Habilitando um espelho específico|selecionar um espelho]], [[Espelhos#Forçar o pacman a renovar as listas de pacotes|renove as listas de pacotes]] e [[instale]] o que você precisa: {{Grp|base}}, {{Grp|base-devel}}, {{Pkg|parted}} etc.
 +
 
 +
=== Dicas de instalação ===
 +
 
 +
Você pode prosseguir agora para [[Guia de instalação#Partição dos discos]] e seguir o resto do [[Guia de instalação]].
 +
 
 +
Alguns sistemas hospedeiros ou configurações podem exigir determinadas etapas adicionais. Veja as seções abaixo para obter dicas.
  
Este chroot está apto a executar os arch install scripts. As partições de destino do chroot deverão sempre ser montadas abaixo da estrutura de diretórios {{ic|/mnt}}.
+
===== Host baseado no debian =====
  
===Método 2: Bootstrapping dos scripts de instalação(arch install scripts)===
+
====== /dev/shm ======
Ao contrário dos outros métodos, '''este é um método de um passo apenas'''; você só precisará executar o script abaixo e pronto.
 
  
Este método pode ser considerado um híbrido entre os métodos 1 e 2. Provê um ambiente de chroot onde os scripts de instalação serão executados(similar ao método 2), utilizando o script de bootstrapping(similar ao método 1).
+
Em alguns sistemas baseados no Debian, {{ic|pacstrap}} pode produzir o seguinte erro:
  
O script abaixo criará um diretório chamado {{ic|archinstall-pkg}} e efetuará o download dos pacotes necessários lá. Então os extrairá para dentro do diretório {{ic|archinstall-chroot}}. Finalmente, irá preparar os pontos de montagem, configrará o pacman e entrará no chroot
+
{{hc|# pacstrap /mnt base|
{{Nota|Este é '''apenas''' um ambiente para executar os arch install scripts: '''esta não é sua instalação final'''.}}
+
==> Creating install root at /mnt
 +
mount: mount point /mnt/dev/shm is a symbolic link to nowhere
 +
==> ERROR: failed to setup API filesystems in new root
 +
}}
  
Este chroot é capaz de executar os arch install scripts. '''As partições destino deve estar montadas abaixo do diretório {{ic|/mnt}} para este chroot'''. Após esta configuração, vá para o próximo passo que é [[#Corrigindo problemas de chaves de assinatura]].
+
Isso porque em algumas versões do Debian, {{ic|/dev/shm}} aponta para {{ic|/run/shm}} enquanto no chroot baseado no Arch, {{ic|/run/shm}} não existe e o link está quebrado. Para corrigir esse erro, cria um diretório {{ic|/run/shm}}:
 +
# mkdir /run/shm
  
{{hc|archinstall-bootstrap.sh|<nowiki>
+
====== /dev/pts ======
#!/bin/bash
 
# This script is inspired on the archbootstrap script.
 
  
PACKAGES=(acl attr bzip2 curl expat glibc gpgme libarchive libassuan libgpg-error libssh2 openssl pacman xz zlib pacman-mirrorlist coreutils bash grep gawk file tar ncurses readline libcap util-linux pcre arch-install-scripts)
+
Ao instalar {{ic|archlinux-2015.07.01-x86_64}} a partir de um host Debian 7, o seguinte erro impediu [https://projects.archlinux.org/arch-install-scripts.git/tree/pacstrap.in pacstrap] e [[Chroot (Português)#Usando arch-chroot|arch-chroot]] de funcionar:
# Change the mirror as necessary
 
MIRROR='http://mirrors.kernel.org/archlinux'
 
# You can set the ARCH variable to i686 or x86_64
 
ARCH=`uname -m`
 
LIST=`mktemp`
 
CHROOT_DIR=archinstall-chroot
 
DIR=archinstall-pkg
 
mkdir -p "$DIR"
 
mkdir -p "$CHROOT_DIR"
 
# Create a list with urls for the arch packages
 
for REPO in core community extra; do 
 
        wget -q -O- "$MIRROR/$REPO/os/$ARCH/" |sed  -n "s|.*href=\"\\([^\"]*\\).*|$MIRROR\\/$REPO\\/os\\/$ARCH\\/\\1|p"|grep -v 'sig$'|uniq >> $LIST 
 
done
 
# Download and extract each package.
 
for PACKAGE in ${PACKAGES[*]}; do
 
        URL=`grep "$PACKAGE-[0-9]" $LIST|head -n1`
 
        FILE=`echo $URL|sed 's/.*\/\([^\/][^\/]*\)$/\1/'`
 
        wget "$URL" -c -O "$DIR/$FILE"
 
        xz -dc "$DIR/$FILE" | tar x -k -C "$CHROOT_DIR"
 
done
 
# Create mount points
 
mkdir -p "$CHROOT_DIR/dev" "$CHROOT_DIR/proc" "$CHROOT_DIR/sys" "$CHROOT_DIR/mnt"
 
mount -t proc proc "$CHROOT_DIR/proc/"
 
mount -t sysfs sys "$CHROOT_DIR/sys/"
 
mount -o bind /dev "$CHROOT_DIR/dev/"
 
mkdir -p "$CHROOT_DIR/dev/pts"
 
mount -t devpts pts "$CHROOT_DIR/dev/pts/"
 
  
# Hash for empty password  Created by doing: openssl passwd -1 -salt ihlrowCo and entering an empty password (just press enter)
+
{{hc|# pacstrap -i /mnt|
echo 'root:$1$ihlrowCo$sF0HjA9E8up9DYs258uDQ0:10063:0:99999:7:::' > "$CHROOT_DIR/etc/shadow"
+
mount: mount point /mnt/dev/pts does not exist
echo "root:x:0:0:root:/root:/bin/bash" > "$CHROOT_DIR/etc/passwd"
+
==> ERROR: failed to setup chroot /mnt
touch "$CHROOT_DIR/etc/group"
+
}}
echo "myhost" > "$CHROOT_DIR/etc/hostname"
 
test -e "$CHROOT_DIR/etc/mtab" || echo "rootfs / rootfs rw 0 0" > "$CHROOT_DIR/etc/mtab"
 
[ -f "/etc/resolv.conf" ] && cp "/etc/resolv.conf" "$CHROOT_DIR/etc/"
 
sed -ni '/^[ \t]*CheckSpace/ !p' "$CHROOT_DIR/etc/pacman.conf"
 
sed -i "s/^[ \t]*SigLevel[ \t].*/SigLevel = Never/" "$CHROOT_DIR/etc/pacman.conf"
 
echo "Server = $MIRROR/\$repo/os/$ARCH" >> "$CHROOT_DIR/etc/pacman.d/mirrorlist"
 
  
chroot $CHROOT_DIR /usr/bin/pacman -Sy
+
Aparentemente, é porque esses dois scripts usam uma função em comum. {{ic|chroot_setup()}}[https://projects.archlinux.org/arch-install-scripts.git/tree/common#n76] depende em novos recursos do {{Pkg|util-linux}}, que são incompatíveis com Debian 7 ''userland'' (veja {{Bug|45737}}).
chroot $CHROOT_DIR /bin/bash
 
</nowiki>}}
 
  
===Método 3: Instalando o pacman nativamente em uma distribuição não-arch(avançado)===
+
A solução para ''pacstrap'' é executar manualmente seus [https://projects.archlinux.org/arch-install-scripts.git/tree/pacstrap.in#n77 várias tarefas], mas use o [[Chroot (Português)#Usando chroot|procedimento regular]] para montaros sistemas de arquivos do kernel no diretório alvo ({{ic|"$newroot"}}):
{{Warning|Este método é potencialmente difícil, e pode ter variações de distribuição para distribuição. Se você deseja apenas efetuar uma instalação do arch utilizando outra distro e não está interessado em ter o pacman como um programa dentro de tal distro, é melhor utilizar outro método de instalação}}
+
 
 +
{{bc|1=
 +
# newroot=/mnt
 +
# mkdir -m 0755 -p "$newroot"/var/{cache/pacman/pkg,lib/pacman,log} "$newroot"/{dev,run,etc}
 +
# mkdir -m 1777 -p "$newroot"/tmp
 +
# mkdir -m 0555 -p "$newroot"/{sys,proc}
 +
# mount --bind "$newroot" "$newroot"
 +
# mount -t proc /proc "$newroot/proc"
 +
# mount --rbind /sys "$newroot/sys"
 +
# mount --rbind /run "$newroot/run"
 +
# mount --rbind /dev "$newroot/dev"
 +
# pacman -r "$newroot" --cachedir="$newroot/var/cache/pacman/pkg" -Sy base base-devel ... ## adicione os pacotes que quiser
 +
# cp -a /etc/pacman.d/gnupg "$newroot/etc/pacman.d/"      ## copiar chaveiro
 +
# cp -a /etc/pacman.d/mirrorlist "$newroot/etc/pacman.d/"  ## copiar lista de espelhos
 +
}}
 +
 
 +
Em vez de usar {{ic|arch-chroot}} para [[Guia de instalação#Chroot]], basta usar {{ic|chroot "$newroot"}}.
 +
 
 +
====== lvmetad ======
 +
 
 +
A tentativa de criar [[LVM#Logical_volumes|volumes lógicos]] [[LVM]] de um ambiente {{ic|archlinux-bootstrap-2015.07.01-x86_64}} em um host Debian 7 resultaram no seguinte erro:
 +
 
 +
{{hc|# lvcreate -L 20G lvm -n root|
 +
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
 +
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
 +
  /dev/lvm/root: not found: device not cleared
 +
  Aborting. Failed to wipe start of new LV.}}
 +
 
 +
(A criação de volume físico e grupo de volumes funcionaram apesar de {{ic|/run/lvm/lvmetad.socket: connect failed: No such file or directory}} estar sendo exibido.)
 +
 
 +
Isso poderia ser facilmente contornado criando os volumes lógicos fora do chroot (do host Debian). Eles estão disponíveis uma vez que executados chroot novamente.
 +
 
 +
{{Accuracy|Esse problema não surgiu ao instalar de um host Debian 7 sem lvmetad habilitado. A bagunça recomendada com {{ic|/etc/lvm/lvm.conf}} parece bastante propenso a erros (2015-07-26).|Talk:Install from existing Linux}}
 +
 
 +
Também, se o sistema que você está usando tiver lvm, você pode ter a seguinte saída:
 +
 
 +
{{hc|1=# grub-install --target=i386-pc --recheck /dev/main/archroot|2=
 +
Installing for i386-pc platform.
 +
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
 +
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
 +
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
 +
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
 +
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
 +
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
 +
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
 +
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
 +
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
 +
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
 +
}}
  
Este método abrange a instalação do pacman e os scripts de instalação do arch diretamente em outra distribuição, para que se tornem programas comuns na mesma.
+
Isso porque o Debian não usa lvmetad por padrão. Você precisa editar {{ic|/etc/lvm/lvm.conf}} e definir {{ic|use_lvmetad}} para {{ic|0}}:
  
Este método é bastante útil se você planeja utilizar outra distro regularmente para instalar o arch, ou fazer coisas mirabolantes como atualizar os pacotes do arch enquanto utiliza outra distribuição. Este é o único método que não requer a criação de um ambiente chroot para executar o pacman e scripts de instalação. (porém, como parte do processo de instalação inclui entrar em chroot, não existe escapatória)
+
use_lvmetad = 0
 +
{{Accuracy|Esse problema é com LVM no Debian ou com tentar instalar Arch no LVM?|Talk:Install from existing Linux}}
  
==== Download dos fontes e pacotes do pacman ====
+
Isto irá desencadear mais tarde um erro na inicialização no estágio initrd. Portanto, você deve alterá-lo depois da geração grub. Em um software RAID + LVM, as etapas seriam as seguintes:
Visite a página inicial do pacman: https://www.archlinux.org/pacman/#_releases e baixe a última versão.
 
  
Agora, baixe os seguintes pacotes:
+
* Após instalar o sistema, verifique seu [[Mkinitcpio]] e as configurações do gerenciador de inicialização ''(boot loader)''. Veja [[Processo de inicialização do Arch#Gerenciador de boot]] para uma lista de gerenciadores de inicialização.
 +
* Você pode precisar alterar seu {{ic|/etc/mdadm.conf}} para refletir suas configurações de [[RAID]] (se aplicável).
 +
*Você pode precisar alterar seu{{ic|HOOKS}} e {{ic|MODULES}} de acordo com seus requisitos de [[LVM]] e [[RAID]]: {{ic|1=MODULES="dm_mod" HOOKS="base udev '''mdadm_udev''' ... block '''lvm2''' filesystems ..."}}
 +
* Você provavelmente vai precisar gerar novas imagens initrd com mkinitcpio. Veja [[Mkinitcpio#Image creation and activation]].
 +
* Defina {{ic|1=use_lvmetad = 0}} em {{ic|/etc/lvm/lvm.conf}}.
 +
* Atualize as configurações de seu gerenciador de inicialização. Veja a página wiki de seu gerenciador de inicialização para detalhes.
 +
* Defina {{ic|1=use_lvmetad = 1}} em {{ic|/etc/lvm/lvm.conf}}.
  
* pacman-mirrorlist: https://www.archlinux.org/packages/core/any/pacman-mirrorlist/download/
+
===== Host baseado no Fedora =====
* arch-install-scripts: https://www.archlinux.org/packages/extra/any/arch-install-scripts/download/
 
* pacman (necessário para arquivos de configuração): https://www.archlinux.org/packages/core/x86_64/pacman/download/ (altere para x86_64 se necessário)
 
  
=== Dependências de instalação ===
+
On Fedora based hosts and live USBs you may encounter problems when using {{ic|genfstab}} to generate your [[fstab]]. Remove duplicate entries and the "seclabel" option where it appears, as this is Fedora-specific and will keep your system from booting normally.
Utilizando os mecanismos da sua distribuição, instale os seguintes pacotes que são necessários para o pacman e arch install scripts: libcurl, libarchive, fakeroot, xz, asciidoc, wget, e sed. Obviamente, gcc, make e as variantes "devel" de tais pacotes também são necessários.
 
  
==== Compilação do pacman ====
+
== Coisas para verificar antes de reiniciar ==
  
* Extraia os fontes do pacman e entre no diretório.
+
Antes de reiniciar, faça um ''chroot'' no sistema recém-instalado.
* Execute o configure, e adapte os caminhos se necessário: {{bc|<nowiki> ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-doc</nowiki>}}
 
Caso ocorram erros, são grandes as changes de dependências em falta ou bibliotecas como libcurl, libarchive ou outras são muito antigas. Instale as dependências utilizando suas opções na distribuição em uso, e se estas forem muito antigas, compile-as.
 
* Compile {{bc|make}}
 
* Se não houver erros, instale com {{bc|make install}}
 
* Chame manualmente {{ic|ldconfig}} para garantir a detecção da libalpm.
 
  
==== Preparação dos arquivos de configuração ====
+
Certifique-se de criar um usuário com senha, para que você possa fazer o login via ssh. O login de root está desabilitado por padrão desde o OpenSSH-7.1p2.
Agora é a hora de extrair os arquivos de configuração. Altere para x86_64 se necessário
 
* Extraia os arquivos pacman.conf e makepkg.conf do pacote do pacman, e desabilite a verificação de assinaturas: {{bc|<nowiki>tar xJvf pacman-*-x86_64.pkg.tar.xz etc -C / ; sed -i 's/SigLevel.*/SigLevel = Never/g' /etc/pacman.conf</nowiki>}}
 
* Extraia a lista de arquivos: {{bc|tar xJvf pacman-mirrorlist-*-any.pkg.tar.xz -C /}}
 
* Habilite alguns espelhos no arquivo {{ic|/etc/pacman.d/mirrorlist}}
 
* Extraia o arch-install-scripts {{bc|tar xJvf arch-install-scripts-*-any.pkg.tar.xz -C /}}
 
  
Outra opção é utilizar a ferramenta {{ic|alien}} para converter os pacotes {{ic|pacman-mirrorlist}} e {{ic|arch-install-scripts}} para o formato utilizado pela sua distribuição. Não converta o {{ic|pacman}} em si.
+
Defina uma senha de root para que você possa alternar para root por meio do su mais tarde:
 +
# passwd
  
==Corrigindo problemas de chaves de assinatura==
+
Instale o [[ssh]] e [[habilite]]-o para iniciar automaticamente na inicialização.
  
É necessário inicializar o chaveiro do ''pacman'' para a verificação das assinaturas.
+
Configure a conexão de [[rede]] para iniciar automaticamente na inicialização.
  
Execute
+
Configure um [[gerenciador de inicialização]] e configure-o para usar a partição swap que você apropriou anteriormente como a partição raiz. Você pode querer configurar seu gerenciador de inicialização para poder inicializar em seu sistema antigo; é útil reutilizar a partição /boot existente do servidor no novo sistema para este propósito.
# pacman-key --init # leia nota abaixo!
 
# pacman-key --populate archlinux
 
  
'''Contudo''', quando conectado através de SSH você pode sofrer de falta de [http://pt.wikipedia.org/wiki/Entropia entropia]. Neste caso, tente algo similar a:
+
== Substituindo o sistema existente sem um LiveCD ==
  
# cat /usr/bin/* > /dev/null &
+
Encontre ~700 MB de espaço livre em algum lugar do disco, p.ex. particionando uma partição swap. Você pode desativar a partição swap e configurar o seu sistema lá.
# find / > /dev/null &
 
  
antes de executar {{ic|pacman-key --init}}.
+
=== Defina a partição antiga de swap como nova partição raiz ===
  
Pode levar um tempo. Caso estas opções acima não funcionem, instale o pacote {{Pkg|haveged}} e antes de efetuar a inicialização das chaves com  {{ic|pacman-key --init}}, execute:
+
Verifique {{ic|cfdisk}}, {{ic|/proc/swaps}} ou {{ic|/etc/fstab}} para localizar sua partição swap. Presumindo que seu disco rígido esteja localizado em sdaX (X será um número).
# /usr/sbin/haveged -w 1024 -v 1
 
  
==Configure o sistema alvo==
+
Faça o seguinte:
  
Neste ponto, apenas siga os passos do [[Installation Guide (Português)|Guia de Instalação]]. Lembre de montar o sistema destino do chroot em {{ic|/mnt}}.
+
Desabilite o espaço swap:
 +
# swapoff /dev/sdaX
  
  # pacstrap /mnt base base-devel
+
Crie um sistema de arquivos nele
  # # ...
+
  # fdisk /dev/sda
 +
(defina o campo de ID do /dev/sdaX para "Linux" - Hex 83)
 +
  # mke2fs -j /dev/sdaX
  
===Edite o arquivo FSTAB===
+
Crie um diretório para montá-lo nele
 +
# mkdir /mnt/novosis
  
Provavelmente o script {{ic|genfstab}} não funcionará. Neste caso, você terá de editar o {{ic|/mnt/etc/fstab}} na mão. Utilize o conteúdo do arquivo {{ic|/etc/mtab}} como referência.
+
Finalmente, monte o novo diretório para instalar um sistema intermediário.
 +
# mount -t ext4 /dev/sdaX /mnt/novosis
  
===Finalizando a instalação===
+
=== Instalação ===
Execute os outros passos normalmente.
+
Se estiver disponível menos de 700 MB, examine os pacotes na base do grupo e selecione apenas aqueles necessários para que um sistema com conexão à Internet seja executado e executado na partição temporária. Isso significará especificamente especificar pacotes individuais para pacstrap, bem como passá-lo a opção -c, para obter pacotes baixados para o sistema host para evitar o preenchimento de espaço valioso.
  
==Dicas==
+
Uma vez que o novo sistema Arch Linux esteja instalado, reinicie no sistema recém-criado e faça um [[rsync#Full system backup|rsync de todo o sistema]] para a partição primária.
* Caso você queira substituir o sistema existente, mas por alguma razão não consegue utilizar um LiveCD devido a limitações físicas(acesso ao computador, ausência de driver de CD, etc) a seguinte dica pode ajudar: Libere ~500MB no seu disco e instale o archlinux lá. Reinicie nesta nova partição criada e execute um [[Full_System_Backup_with_rsync#With_a_single_command|rsync completo]] para a partição primária. Altere as configurações do bootloader e reinicie.
+
Corrija a configuração do gerenciador de inicialização antes de reiniciar.

Latest revision as of 17:54, 24 October 2018

Status de tradução: Esse artigo é uma tradução de Install from existing Linux. Data da última tradução: 2018-10-24. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Este documento descreve o processo de inicialização necessário para instalar o Arch Linux a partir de um sistema host Linux em execução. Após o bootstrapping, a instalação prossegue conforme descrito no guia de instalação.

Instalar o Arch Linux de um Linux existente é útil para:

O objetivo do procedimento de inicialização é configurar um ambiente a partir do qual os scripts do arch-install-scripts (como o pacstrap e arch-chroot) podem ser executados.

Se o sistema hospedeiro funciona no Arch Linux, isso pode ser conseguido simplesmente instalando arch-install-scripts. Se o sistema hospedeiro executar outra distribuição Linux, primeiro você precisará configurar um chroot baseado no Arch Linux.

Nota: Este guia exige que o sistema hospedeiro existente seja capaz de executar os novos programas de arquitetura do Arch Linux alvo. Isso significa que tem que ser uma máquina x86_64.
Atenção: Certifique-se de compreender cada passo antes de prosseguir. É fácil destruir seu sistema ou perder dados críticos, e seu provedor de serviços provavelmente cobrará muito para ajudá-lo a recuperar.

Backup e preparação

Faça backup de todos os seus dados, incluindo correios, servidores web, etc. Tenha todas as informações ao seu alcance. Preserve todas as configurações do seu servidor, hsotnames, etc.

Aqui está uma lista de dados que você provavelmente precisará:

  • Endereço IP
  • hostname(s), (nota: servidores raiz são principalmente também parte do domínio dos provedores, verifique ou salve seu /etc/hosts antes de excluir)
  • Servidor DNS (verifique /etc/resolv.conf)
  • Chaves SSH (se outras pessoas trabalham no seu servidor, elas terão de aceitar novas chaves, caso contrário. Isso inclui chaves do seu Apache, seus servidores de e-mail, seu servidor SSH e outros.)
  • Informações de hardware (placa de rede, etc. Consulte o seu /etc/modules.conf pré-instalado)
  • Arquivos de configuração Grub.

Em geral, é uma boa ideia ter uma cópia local do diretório original /etc no seu disco rígido local.

De um host executando o Arch Linux

Instale o pacote arch-install-scripts.

Siga Guia de instalação#Montar os sistemas de arquivos. Se você já usa o diretório /mnt para alguma outra coisa, basta criar outro diretório como /mnt/install e usá-lo.

Então, siga Guia de instalação#Instalação. Você pode pular Guia de instalação#Selecionar os espelhos, já que o host já deve ter a lista de espelhos correta.

Dica: Para evitar baixar novamente todos os pacotes, considere seguir Pacman/Dicas e truques#Cache do pacman compartilhado na rede ou usara opção -c do pacstrap.
Dica: Quando o gerenciador de boot Grub é usado, o comando grub-mkconfig pode detectar dispositivos incorretamente. Isso resultará no erro Erro:nenhuma partição ao tentar inicializar a partir do pendrive. Para resolver este problema, a partir do host executando o Arch Linux, monte as partições recém-instaladas, use arch-chroot na nova partição, depois instale e configure o grub. A última etapa pode requerer a desativação de lvmetad do /etc/lvm/lvm.conf configurando use_lvmetad=0.

Merge-arrows-2.pngThis article or section is a candidate for merging with Moving an existing install into (or out of) a virtual machine#Moving into a VM.Merge-arrows-2.png

Notes: Mesma abordagem. (Discuss in Talk:Install from existing Linux)
Nota: Se você quiser apenas criar uma cópia exata de uma instalação do Arch existente, também é possível copiar o sistema de arquivos para a nova partição. Com este método, você ainda precisará
  • Criar /etc/fstab e editar /etc/hostname
  • Excluir /etc/machine-id de forma que um novo, único, será gerado na inicialização
  • Fazer quaisquer outras alterações apropriadas à mídia de instalação
  • Instalar o gerenciador de inicialização (bootloader)

Ao copiar o sistema de arquivos raiz, use alguma coisa como cp -ax ou rsync -axX. Isso evita copiar conteúdo dos pontos de montagem (-x) e preserve os atributos de capacidades de alguns sistemas binários (rsync -X).

De um host executando outra distribuição Linux

Existem várias ferramentas que automatizam uma grande parte das etapas descritas nas subseções a seguir. Consulte as respectivas páginas para obter instruções detalhadas.

A maneira manual é apresentada nas seguintes subseções. A ideia é fazer o pacman funcionar diretamente no sistema hospedeiro ou executar um sistema Arch dentro do sistema host, com a instalação real sendo executada a partir do sistema Arch. O sistema aninhado está contido dentro de um chroot.

Usando pacman do sistema hospedeiro

O Pacman pode ser compilado na maioria das distribuições Linux e usado diretamente no sistema hospedeiro para inicializar o Arch Linux. O arch-install-scripts deve ser executado sem problemas diretamente dos fontes baixados em qualquer distribuição recente.

Algumas distribuições fornecem um pacote pacman em seus repositórios oficiais, que podem ser usados para essa finalidade. Em junho de 2018, o Gentoo e o Fedora são conhecidos por fazer isso. O Fedora também fornece o arch-install-scripts.

Criando um chroot

Dois métodos para configurar e entrar no chroot são apresentados abaixo, do mais fácil ao mais complicado. Selecione apenas um dos dois métodos. Então, continue em #Usando um ambiente chroot.

Método A: Usando a imagem do bootstrap (recomendado)

Baixe a imagem bootstrap de um espelho (mirror) em /tmp.

Você também pode baixar a assinatura (mesma URL com .sig adicionado) e verificá-la com GnuPG.

Extraia o tarball:

# tar xzf <caminho-para-imagem-bootstrap>/archlinux-bootstrap-*-x86_64.tar.gz

Selecione um servidor de repositório editando /tmp/root.x86_64/etc/pacman.d/mirrorlist.

Entre no chroot

  • Se bash 4 ou posterior estiver instalado, e unshare tiver suporte às opções --fork e --pid:
# /tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/
  • Do contrário, execute os seguintes comandos:
# mount --bind /tmp/root.x86_64 /tmp/root.x86_64
# cd /tmp/root.x86_64
# cp /etc/resolv.conf etc
# mount -t proc /proc proc
# mount --make-rslave --rbind /sys sys
# mount --make-rslave --rbind /dev dev
# mount --make-rslave --rbind /run run    # (presumindo que /run existe no sistema)
# chroot /tmp/root.x86_64 /bin/bash

Método B: Usando a imagem LiveCD

É possível montar a imagem raiz da mídia mais recente de instalação do Arch Linux e, em seguida, fazer chroot nela. Este método tem a vantagem de fornecer uma instalação funcional do Arch Linux no direito do sistema host sem a necessidade de prepará-lo instalando pacotes específicos.

Nota: Antes de prosseguir, verifique se a versão mais recente de squashfs está instalada no sistema host. Caso contrário, esperam-se erros como os a seguir: FATAL ERROR aborting: uncompress_inode_table: failed to read block.
  • A imagem raiz pode ser encontrada em um dos espelhos em arch/x86_64/. O formato squashfs não é editável, portanto, desfazemos o "squash" na imagem raiz e a montamos.
  • Para fazer um "unsquash" na imagem raiz, execute
# unsquashfs airootfs.sfs
  • Antes de fazer chroot para ela, precisamos configurar alguns pontos de montagem e copiar o resolv.conf para conectividade.
# mount --bind squashfs-root squashfs-root
# mount -t proc none squashfs-root/proc
# mount -t sysfs none squashfs-root/sys
# mount -o bind /dev squashfs-root/dev
# mount -o bind /dev/pts squashfs-root/dev/pts  ## importante para o pacman (para verificação de assinatura)
# cp -L /etc/resolv.conf squashfs-root/etc  ## Isso é necessário para usar conectividade com o chroot
  • Agora, tudo está preparado para fazer chroot para dentro do ambiente Arch recém-instalado
# chroot squashfs-root bash

Usando um ambiente chroot

O ambiente bootstrap é realmente minimalista (sem nano, sem ping, sem cryptsetup, sem lvm). Portanto, precisamos configurar o pacman para baixar o resto da base e, se necessário, base-devel.

Inicializando o chaveiro do pacman

Antes de iniciar a instalação, as chaves do pacman precisam ser configuradas. Antes de executar os dois comandos a seguir, leia pacman-key (Português)#Inicializando o chaveiro para entender os requisitos de entropia:

# pacman-key --init
# pacman-key --populate archlinux
Dica: A instalação e execução haveged deve ser feito no sistema hospedeiro, já que não é possível instalar pacotes antes de inicializar o chaveiro do pacman e porque systemd vai detectar que está sendo executado em um chroot e vai ignorar requisição de ativação. Se você for executar ls -Ra / em outro console (TTY, terminal, sessão SSH...), não tenha medo de executá-lo em um loop algumas vezes: cinco ou seis execuções do hospedeiro provou ser suficiente para gerar entropia suficiente em um servidor burro remoto.

Selecionando um espelho e baixando ferramentas básicas

Após selecionar um espelho, renove as listas de pacotes e instale o que você precisa: base, base-devel, parted etc.

Dicas de instalação

Você pode prosseguir agora para Guia de instalação#Partição dos discos e seguir o resto do Guia de instalação.

Alguns sistemas hospedeiros ou configurações podem exigir determinadas etapas adicionais. Veja as seções abaixo para obter dicas.

Host baseado no debian
/dev/shm

Em alguns sistemas baseados no Debian, pacstrap pode produzir o seguinte erro:

# pacstrap /mnt base
==> Creating install root at /mnt
mount: mount point /mnt/dev/shm is a symbolic link to nowhere
==> ERROR: failed to setup API filesystems in new root

Isso porque em algumas versões do Debian, /dev/shm aponta para /run/shm enquanto no chroot baseado no Arch, /run/shm não existe e o link está quebrado. Para corrigir esse erro, cria um diretório /run/shm:

# mkdir /run/shm
/dev/pts

Ao instalar archlinux-2015.07.01-x86_64 a partir de um host Debian 7, o seguinte erro impediu pacstrap e arch-chroot de funcionar:

# pacstrap -i /mnt
mount: mount point /mnt/dev/pts does not exist
==> ERROR: failed to setup chroot /mnt

Aparentemente, é porque esses dois scripts usam uma função em comum. chroot_setup()[1] depende em novos recursos do util-linux, que são incompatíveis com Debian 7 userland (veja FS#45737).

A solução para pacstrap é executar manualmente seus várias tarefas, mas use o procedimento regular para montaros sistemas de arquivos do kernel no diretório alvo ("$newroot"):

# newroot=/mnt
# mkdir -m 0755 -p "$newroot"/var/{cache/pacman/pkg,lib/pacman,log} "$newroot"/{dev,run,etc}
# mkdir -m 1777 -p "$newroot"/tmp
# mkdir -m 0555 -p "$newroot"/{sys,proc}
# mount --bind "$newroot" "$newroot"
# mount -t proc /proc "$newroot/proc"
# mount --rbind /sys "$newroot/sys"
# mount --rbind /run "$newroot/run"
# mount --rbind /dev "$newroot/dev"
# pacman -r "$newroot" --cachedir="$newroot/var/cache/pacman/pkg" -Sy base base-devel ... ## adicione os pacotes que quiser
# cp -a /etc/pacman.d/gnupg "$newroot/etc/pacman.d/"       ## copiar chaveiro
# cp -a /etc/pacman.d/mirrorlist "$newroot/etc/pacman.d/"  ## copiar lista de espelhos

Em vez de usar arch-chroot para Guia de instalação#Chroot, basta usar chroot "$newroot".

lvmetad

A tentativa de criar volumes lógicos LVM de um ambiente archlinux-bootstrap-2015.07.01-x86_64 em um host Debian 7 resultaram no seguinte erro:

# lvcreate -L 20G lvm -n root
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /dev/lvm/root: not found: device not cleared
  Aborting. Failed to wipe start of new LV.

(A criação de volume físico e grupo de volumes funcionaram apesar de /run/lvm/lvmetad.socket: connect failed: No such file or directory estar sendo exibido.)

Isso poderia ser facilmente contornado criando os volumes lógicos fora do chroot (do host Debian). Eles estão disponíveis uma vez que executados chroot novamente.

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Esse problema não surgiu ao instalar de um host Debian 7 sem lvmetad habilitado. A bagunça recomendada com /etc/lvm/lvm.conf parece bastante propenso a erros (2015-07-26). (Discuss in Talk:Install from existing Linux)

Também, se o sistema que você está usando tiver lvm, você pode ter a seguinte saída:

# grub-install --target=i386-pc --recheck /dev/main/archroot
Installing for i386-pc platform.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.

Isso porque o Debian não usa lvmetad por padrão. Você precisa editar /etc/lvm/lvm.conf e definir use_lvmetad para 0:

use_lvmetad = 0

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Esse problema é com LVM no Debian ou com tentar instalar Arch no LVM? (Discuss in Talk:Install from existing Linux)

Isto irá desencadear mais tarde um erro na inicialização no estágio initrd. Portanto, você deve alterá-lo depois da geração grub. Em um software RAID + LVM, as etapas seriam as seguintes:

  • Após instalar o sistema, verifique seu Mkinitcpio e as configurações do gerenciador de inicialização (boot loader). Veja Processo de inicialização do Arch#Gerenciador de boot para uma lista de gerenciadores de inicialização.
  • Você pode precisar alterar seu /etc/mdadm.conf para refletir suas configurações de RAID (se aplicável).
  • Você pode precisar alterar seuHOOKS e MODULES de acordo com seus requisitos de LVM e RAID: MODULES="dm_mod" HOOKS="base udev mdadm_udev ... block lvm2 filesystems ..."
  • Você provavelmente vai precisar gerar novas imagens initrd com mkinitcpio. Veja Mkinitcpio#Image creation and activation.
  • Defina use_lvmetad = 0 em /etc/lvm/lvm.conf.
  • Atualize as configurações de seu gerenciador de inicialização. Veja a página wiki de seu gerenciador de inicialização para detalhes.
  • Defina use_lvmetad = 1 em /etc/lvm/lvm.conf.
Host baseado no Fedora

On Fedora based hosts and live USBs you may encounter problems when using genfstab to generate your fstab. Remove duplicate entries and the "seclabel" option where it appears, as this is Fedora-specific and will keep your system from booting normally.

Coisas para verificar antes de reiniciar

Antes de reiniciar, faça um chroot no sistema recém-instalado.

Certifique-se de criar um usuário com senha, para que você possa fazer o login via ssh. O login de root está desabilitado por padrão desde o OpenSSH-7.1p2.

Defina uma senha de root para que você possa alternar para root por meio do su mais tarde:

# passwd

Instale o ssh e habilite-o para iniciar automaticamente na inicialização.

Configure a conexão de rede para iniciar automaticamente na inicialização.

Configure um gerenciador de inicialização e configure-o para usar a partição swap que você apropriou anteriormente como a partição raiz. Você pode querer configurar seu gerenciador de inicialização para poder inicializar em seu sistema antigo; é útil reutilizar a partição /boot existente do servidor no novo sistema para este propósito.

Substituindo o sistema existente sem um LiveCD

Encontre ~700 MB de espaço livre em algum lugar do disco, p.ex. particionando uma partição swap. Você pode desativar a partição swap e configurar o seu sistema lá.

Defina a partição antiga de swap como nova partição raiz

Verifique cfdisk, /proc/swaps ou /etc/fstab para localizar sua partição swap. Presumindo que seu disco rígido esteja localizado em sdaX (X será um número).

Faça o seguinte:

Desabilite o espaço swap:

# swapoff /dev/sdaX

Crie um sistema de arquivos nele

# fdisk /dev/sda
(defina o campo de ID do /dev/sdaX para "Linux" - Hex 83)
# mke2fs -j /dev/sdaX

Crie um diretório para montá-lo nele

# mkdir /mnt/novosis

Finalmente, monte o novo diretório para instalar um sistema intermediário.

# mount -t ext4 /dev/sdaX /mnt/novosis

Instalação

Se estiver disponível menos de 700 MB, examine os pacotes na base do grupo e selecione apenas aqueles necessários para que um sistema com conexão à Internet seja executado e executado na partição temporária. Isso significará especificamente especificar pacotes individuais para pacstrap, bem como passá-lo a opção -c, para obter pacotes baixados para o sistema host para evitar o preenchimento de espaço valioso.

Uma vez que o novo sistema Arch Linux esteja instalado, reinicie no sistema recém-criado e faça um rsync de todo o sistema para a partição primária. Corrija a configuração do gerenciador de inicialização antes de reiniciar.