Last active
July 21, 2022 03:48
-
-
Save leodutra/150884245938ddd97bcd58c42f3cd381 to your computer and use it in GitHub Desktop.
Arch Install GPT + GRUB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# O live ISO do Arch é um CLI | |
# a instalação é iniciada como sudo automaticamente | |
# siga os passos... | |
# DEFINIR TECLADO ABNT2 PARA LIVE BOOT | |
loadkeys br-abnt2 | |
# AUMENTAR FONTE DO TERMINAL DO LIVE BOOT | |
setfont lat4-19 | |
# ALTERA LINGUA DE INSTALACAO | |
nano /etc/locale.gen | |
# descomentar en_US UTF-8 e ISO | |
# descomentar pt_BR UTF-8 e ISO | |
# ctrl+o, enter para salvar... ctrl+x para sair do nano | |
locale-gen | |
export LANG=pt_BR.UTF-8 | |
# TESTA CONEXAO WIRED COM INTERNET | |
ping -c 3 8.8.8.8 | |
# MOSTRAR DISCOS E PARTICOES | |
fdisk -l | |
# INSTRUCOES PARA FORMATAR DISCO EM GPT. Ver Arch Wiki para instruções sobre MBR. | |
# GPT requer particao de boot... | |
# gerenciar particoes é bem fácil com cfdisk (outras opcoes na wiki do Arch) | |
cfdisk /dev/sdx | |
# BIOS LEGACY ---------------- | |
# criar partição de boot com no mínimo 2M, tipo BIOS LINUX / BOOT | |
# criar partição para swap (tipo "Linux swap") ideal do mesmo tamanho da RAM (ex: 8GB - recommended max 8GB) | |
# criar outras partições conforme desejo de uso (Linux filesystem, ext4) | |
# executar write | |
# | |
# exemplo de particionamento BIOS LEGACY: | |
# /dev/sdx | |
# L /dev/sdx1 2M bios boot | |
# L /dev/sdx2 8G linux swap | |
# L /dev/sdx3 64G linux filesystem (a formatar como ext4 para o "/") | |
# L /dev/sdx4 390G linux filesystem (a formatar como ext4 para a "/home") | |
# UEFI ----------------------- | |
# criar partição de boot com no mínimo 512M (I use 2G), tipo EFI SYSTEM | |
# criar partição para swap (tipo "Linux swap") ideal do mesmo tamanho da RAM (ex: 8GB - recommended max 8GB) | |
# criar outras partições conforme desejo de uso (Linux filesystem, ext4) | |
# executar write | |
# | |
# exemplo de particionamento: | |
# /dev/sdx | |
# L /dev/sdx1 2G efi system | |
# L /dev/sdx2 8G linux swap | |
# L /dev/sdx3 64G linux filesystem (a formatar como ext4 para o "/") | |
# L /dev/sdx4 390G linux filesystem (a formatar como ext4 para a "/home") | |
# formatar particoes "Linux filesystem" (numeros ficticios, execute fdisk para rever os seus) | |
# nao formate a particao de boot para ext4 ou outra, o GRUB cuida disso | |
mkfs.ext4 /dev/sdx3 | |
mkfs.ext4 /dev/sdx4 | |
# Apenas UEFI: formatar efi system como FAT32 | |
mkfs.fat -F32 /dev/sdx1 | |
# SWAP (opcional, recomendado) | |
# formatar particao de swap e ligar | |
mkswap /dev/sdx2 | |
swapon /dev/sdx2 | |
# ver o layout do particionamento | |
lsblk /dev/sdx | |
# montar particoes para pacstrap e gerar fstab | |
mount /dev/sdx3 /mnt | |
# criar pasta home e montar particao | |
mkdir /mnt/home | |
mount /dev/sdx4 /mnt/home | |
# ----------------- opcional | |
# OTIMIZAR MIRRORS E DNS (melhora muito tempo de instalacao de pacotes) | |
# nao e obrigatorio mas recomendado | |
nano /etc/resolv.conf | |
# para utilizar o DNS do Google adicione "nameserver 8.8.8.8" antes de outros nameservers, sem aspas | |
# salve com ctrl+o, enter | |
nano /etc/pacman.d/mirrorlist | |
# ctrl+k para apagar mirrors que nao sejam brasileiros (sao mais ou menos 5 brasileiros) | |
# ctrl+o, enter para salvar | |
# saia do nano e caminhe para a pasta de mirrors | |
cd /etc/pacman.d/ | |
# rankeie os mirrors brasileiros | |
# (exclua mirrors de paises longinquos. Quanto mais mirrors, mais demora o ranking) | |
rankmirrors mirrorlist | |
# walk de volta para a home (alias "~") | |
cd ~ | |
# ------------------ fim-opcional | |
# INSTALAR SISTEMA BASE E BASE PARA FUNCOES ADICIONAIS | |
pacstrap /mnt base base-devel | |
# GERAR O FSTAB (descritor de particoes) | |
genfstab -U -p /mnt >> /mnt/etc/fstab | |
# verificar se fstab foi gerado conforme dados do "lsblk" | |
# a particao de boot fica com path "none" mesmo | |
cat /mnt/etc/fstab | |
# LOGAR NA INSTALACAO PARA DEFINIR INICIALIZACAO | |
arch-chroot /mnt | |
# agora, dentro da instalacao... | |
# ALTERAR LINGUA DA INSTALACAO... observando um comando a mais | |
nano /etc/locale.gen | |
# descomentar en_US UTF-8 e ISO | |
# descomentar pt_BR UTF-8 e ISO | |
# ctrl+o, enter para salvar... ctrl+x para sair do nano | |
locale-gen | |
# criar arquivo de configuracao de lingua | |
echo LANG=pt_BR.UTF-8 > /etc/locale.conf | |
export LANG=pt_BR.UTF-8 | |
# ----------------- opcional | |
# OTIMIZAR MIRRORS E DNS (melhora muito tempo de instalacao de pacotes) | |
# nao e obrigatorio mas recomendado | |
nano /etc/resolv.conf | |
# para utilizar o DNS do Google adicione "nameserver 8.8.8.8" antes de outros nameservers, sem aspas | |
# salve com ctrl+o, enter | |
nano /etc/pacman.d/mirrorlist | |
# ctrl+k para apagar mirrors que nao sejam brasileiros (sao mais ou menos 5 brasileiros) | |
# ctrl+o, enter para salvar | |
# saia do nano e caminhe para a pasta de mirrors | |
cd /etc/pacman.d/ | |
# rankeie os mirrors brasileiors (quanto mais mirrors, mais lento) | |
rankmirrors mirrorlist | |
# caminhe de volta para a home (alias "~") | |
cd ~ | |
# ----- fim-opcional | |
# DEFINIR CONFIGS DE TECLADO PARA PERSISTIR ENTRE SESSOES | |
nano /etc/vconsole.conf | |
# KEYMAP="br-abnt2.map.gz" | |
# FONT=Lat2-Terminus16 | |
# FONT_MAP= | |
# ctrl+o, enter, ctrl+x para salvar e sair do nano | |
# DEFINIR HORA E FUSO | |
# procurar fuso horario (existe fusos para o Brazil e Americas compativeis) | |
ls /usr/share/zoneinfo | |
# dou preferencia ao fuso de Sao Paulo | |
ln -s /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime | |
# sincronizar o relogio de hardware com o sistema | |
hwclock --systohc --utc | |
# CONFIGURAR REDE PARA USUARIOS | |
# alguns tutoriais definem o servico de rede agora... | |
# essa rede serve apenas para o live boot e não para a instalação final | |
# eu prefiro usar o dhcpcd manualmente e depois instalar o NetworkManager | |
# que e compativel e habilita icones para o gnome 3 | |
# ----- opcional (rede do live boot para instalacao de dependencias) | |
# WIRED/ ETHERNET | |
# execute ip link e veja qual sua rede ether | |
ip link | |
# normalmente e "eth0" (formato antigo) ou "enp3s0" (formato novo e meu caso) | |
systemctl enable [email protected] | |
# | |
# WIRELESS | |
pacman -S wireless_tools wpa_supplicant wpa_actiond netcf dialog | |
systemctl enable net-auto-wireless.service | |
# ----- fim-opcional (rede para instalacao) | |
# HABILITAR REPOSITORIO MULTI ARQUITETURA (tipo o ia32 do Ubuntu) | |
nano /etc/pacman.conf | |
# descomente "[multilib]" e seus dados | |
# descomente "Color" para ter cores | |
# insira "ILoveCandy" depois de "Color" para ativar o loading do Pac-Man | |
# ctrl+x, yes, enter para salvar | |
# sincronizar multilib | |
pacman -Sy | |
# CRIAR SENHA DO ROOT (opcional, recomendado... nao esqueca essa senha) | |
passwd | |
# CRIAR USUARIO PESSOAL, substituindo "meulogin" pelo seu login desejado | |
useradd -m -g users -G wheel,storage,power -s /bin/bash meulogin | |
# ALTERAR SENHA DO USUARIO PESSOAL, substituindo "meulogin" pelo seu login desejado | |
passwd meulogin | |
# INSTALAR SUDO (MUITO IMPORTANTE) | |
pacman -S sudo | |
# editar as propriedades de sudo | |
EDITOR=nano visudo | |
# descomentar linha "%wheel ALL=(ALL) ALL" | |
# instala o Intel microcode para processadores Intel | |
pacman -S intel-ucode | |
# INSTALAR GRUB BIOS | |
# Existe a opção de instalar o GRUB BIOS ou UEFI. | |
# BIOS GRUB ------------------------------- | |
# baixar e instalar o GRUB BIOS | |
pacman -S grub-bios | |
# target i386 e o padrao e serve para 64-bits tambem | |
# mais detalhes na wiki e google | |
# recorra a outros tutoriais para definir melhor este comando para arquiteturas especificas | |
# atencao para direcionar a instalacao para a raiz da unidade formatada no inicio do tutorial | |
# ja que seu pc pode ter diversas memorias secundarias (USB inclusive) | |
grub-install --target=i386-pc --recheck /dev/sdx | |
# UEFI GRUB | |
# antes de qualquer coisa, para UEFI, o GRUB requer uma particao EFI SYSTEM formatada como FAT32 e com ao menos 512M | |
# baixar e instalar o GRUB | |
pacman -S grub | |
# target x86_64 e o padrao e serve para 64-bits tambem | |
# mais detalhes na wiki e google | |
# recorra a outros tutoriais para definir melhor este comando para arquiteturas especificas | |
# atencao para direcionar a instalacao para a raiz da unidade formatada no inicio do tutorial | |
# ja que seu pc pode ter diversas memorias secundarias (USB inclusive) | |
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB | |
# !!! nao sei exatamente o que a proxima linha faz, mas funciona :) | |
cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo | |
# criar arquivo de configuracao do GRUB | |
grub-mkconfig -o /boot/grub/grub.cfg | |
# sair do arch-chroot | |
exit | |
# desmontar particoes | |
umount /mnt/home | |
umount /mnt | |
# reinicie e defina a unidade de instalacao como primeira opcao de boot, na sua BIOS | |
reboot | |
# o sistema devera bootar no terminal do arch ja instalado, sem gerenciador grafico | |
# REALIZE LOGIN NO SISTEMA OPERACIONAL INSTALADO | |
# ALTERE O HOSTNAME, substituindo meuhostname pelo nome desejado | |
sudo hostnamectl set-hostname meuhostname | |
# CONECTAR COM A INTERNET (caso nao tenha habilitado o dhcpcd ou wpa anteriormente) | |
# pode ser necessario usar sudo para o dhcpcd | |
dhcpcd | |
# ele demora alguns segundos (5 seg em media) | |
# teste a conexao | |
ping -c 3 8.8.8.8 | |
# -------- Configurar AUR | |
# adicionar AUR ao pacman | |
sudo nano /etc/pacman.conf | |
# adicione ao pacman.conf, proximo aos outros repositorios: | |
# -------------------------------------- | |
[archlinuxfr] | |
SigLevel = Never | |
Server = http://repo.archlinux.fr/$arch | |
# -------------------------------------- | |
# sincronize o pacman ao AUR e atualizar | |
sudo pacman -Syyu --noconfirm | |
# DEPRECATED --------------- | |
# instalar yaourt | |
#sudo pacman -S yaourt | |
# instalar o pacaur | |
# o pacaur e como o yaourt, com mais inteligencias e facilidades. | |
# compartilham as mesmas funcoes, locks e instalacoes ja que sao baseados no pacman | |
# adicione a chave para cower, dependencia do pacaur | |
# pena que ambos nao sao paralelos como o, ja depreciado, "bauer" | |
#gpg --recv-key 1EB2638FF56C0C53 | |
# instale o pacaur | |
#yaourt -S pacaur | |
# instalar aurman | |
# alterar para usuario nao root | |
sudo su meulogin | |
# instalar | |
git clone https://aur.archlinux.org/aurman.git | |
cd aurman | |
makepkg -Acs | |
sudo pacman -U aurman-xxx.pkg.tar.xz | |
cd .. | |
rm -rf aurman | |
# ----- opcional | |
# instalar e utilizar powerpill como backend paralelo, no lugar do pacman | |
gpg --recv-keys 1D1F0DC78F173680 | |
pacaur -S powerpill | |
# configure o .bashrc da home de usuario com o seguinte | |
export PACMAN=/usr/bin/powerpill | |
# essa variavel informa ao pacaur qual backend utilizar | |
# adicione tambem o SigLevel a todos os repositorios padrao do Arch (core, extra, community, multilib) | |
# para isso edite o pacman.conf | |
sudo nano /etc/pacman.conf | |
# ex: | |
[core] | |
SigLevel = PackageRequired | |
Include = /etc/pacman.d/mirrorlist | |
# ----- fim-opcional | |
# sincronizar e instalar mixer da alsa | |
pacman -Sy alsa-utils | |
# ajuste o som, se desejar | |
alsamixer | |
# xf86-input-libinput é o default, mas existem inputs para synaptics, evdev and wacom (ver Arch Wiki) | |
# se nenhum for escolhido agora, deverá ser escolhido ao instalar o xorg / ambiente grafico | |
sudo pacman -S xf86-input-libinput | |
# INSTALAR DRIVER E TOOLS DA NVIDIA | |
# em alguma parte do processo seguinte existe uma decisão sobre | |
# lib libx264 ou libx264-10bit, sendo essa segunda de raro uso e dependente de arquitetura | |
# (ver wiki, comentarios aqui: https://www.reddit.com/r/archlinux/comments/30khba/libx264_vs_libx26410bit/) | |
# verifique a wiki e instale driver de video adequado à sua GPU | |
# no meu caso e a nvidia | |
# lembrando que e bom instalar os drivers de video antes do XOrg e Gnome para evitar | |
# bindings ruins com mesa ou nouveau | |
#sudo pacman -S nvidia nvidia-libgl lib32-nvidia-libgl nvidia-settings | |
sudo pacman -S nvidia-utils lib32-nvidia-utils nvidia-settings | |
# INSTALAR XORG, FONTES E FERRAMENTAS BASICAS | |
# force refaz alguns bindings por causa do driver NVIDIA | |
sudo pacman -S --force xorg-server \ | |
xorg-xinit \ | |
mesa \ | |
ttf-dejavu \ | |
samba \ | |
smbclient \ | |
gvfs \ | |
gvfs-smb \ | |
sshfs | |
# instalar network manager caso nao esteja utilizando dhcpcd ou wpa como servico (como citado no passo opcional de redes) | |
# network manager e compativel com Gnome 3 (applet adiciona controles) | |
sudo pacman -S networkmanager networkmanager-vpnc networkmanager-pptp networkmanager-openconnect network-manager-applet | |
# habilite o network manager, caso tenha instalado | |
sudo systemctl enable NetworkManager | |
# verifique a wiki e instale o seu ambiente grafico, no meu caso e o Gnome 3 | |
# podemos instalar o gnome, todas suas apps, jogos e ferramentas (pacotes "gnome" e "gnome-extra") | |
# (sudo pacman -S gnome gnome-extra) | |
# eu escolhi instalar o basico... | |
# force refaz alguns bindings por causa do driver NVIDIA | |
sudo pacman -S --force gnome-shell \ | |
gnome-keyring \ | |
libsecret \ | |
seahorse \ | |
nautilus \ | |
gnome-terminal \ | |
gnome-tweak-tool \ | |
gnome-control-center \ | |
gnome-system-monitor \ | |
gnome-disk-utility \ | |
xdg-user-dirs \ | |
gdm \ | |
vinagre \ | |
baobab \ | |
polari \ | |
eog \ | |
gnome-characters \ | |
gnome-logs\ | |
# ATIVAR GDM (desktop manager) | |
sudo systemctl enable gdm | |
# reinicie | |
# o sistema devera exibir a tela de login do GDM | |
# em caso de erros, procure ler os logs do xorg e journalctl | |
# ou verifique problemas de drivers de sua GPU | |
# a wiki do Arch e uma das melhores entre comunidades Linux | |
# prepara dirs de usuarios (xinitrc e pastas de pictures, documentos, etc) | |
# talvez nao seja mais necessario no futuro (nem instalacao nem essa execucao) | |
xdg-user-dirs-update | |
# FIXME | |
# configurar teclado abnt2 | |
sudo localectl set-keymap br-abnt2 | |
# configure um DNS bom pelo network manager | |
# existe uma limitacao de 3 nameservers no resolv.conf | |
# e bom usar 2 para ipv4 e um ipv6 | |
# - gigadns: 189.38.95.95 / 2804:10:10::10 | |
# - google DNS: 8.8.8.8 / 2001:4860:4860::8888 | |
# sem isso o gnupg nao consegue achar keyservers em ISPs ruins | |
# popular pacman-key para uso futuro (opcional) | |
sudo mkdir -p /root/.gnupg | |
sudo pacman-key --init | |
sudo pacman-key --populate archlinux && sudo pacman-key --refresh-keys | |
# INSTALAR FERRAMENTAS COMUNS DE DESENVOLVIMENTO | |
# ele ja verifica o que baixar pelo pacman ou AUR, dando preferencia ao pacman | |
# aspell -> orthography corrector | |
pacaur -S --noedit ttf-ms-fonts \ | |
aspell-pt \ | |
tar gzip bzip2 unzip unrar p7zip \ | |
jdk \ | |
git \ | |
p7zip \ | |
firefox \ | |
vlc \ | |
virtualbox \ | |
skype \ | |
google-chrome \ | |
chrome-remote-desktop \ | |
docker \ | |
gitkraken \ | |
plex-media-server \ | |
gimp \ | |
inkscape \ | |
steam-native-runtime \ | |
steam \ | |
atom \ | |
visual-studio-code \ | |
playonlinux \ | |
transmission-gtk \ | |
openssh \ | |
vim \ | |
terminator \ | |
spotify \ | |
empathy \ | |
slack-desktop \ | |
libreoffice-fresh | |
# HABILITAR SERVICO DOCKER | |
sudo systemctl enable docker | |
sudo systemctl start docker | |
# Docker sem sudo | |
sudo gpasswd -a ${USER} docker | |
newgrp docker | |
# HABILITAR SERVICO PLEX MEDIA SERVER | |
sudo systemctl enable plexmediaserver.service | |
sudo systemctl start plexmediaserver.service | |
# (opcional) para evitar checks de seguranca e fazer o acesso ao HD mais rapido | |
# edite o fstab e substitua "relatime" por "noatime" | |
# (ref: https://wiki.archlinux.org/index.php/fstab#atime_options) | |
sudo nano /etc/fstab | |
# INFINALITY IS NOT REQUIRED ANYMORE. FREETYPE 2.7+ HAS HINTING | |
# (https://github.com/bohoomil/fontconfig-ultimate/issues/171) | |
# desativa windows key da esquerda, mudando para a direita ou nenhuma | |
gsettings set org.gnome.mutter overlay-key "Super_R" | |
# gsettings set org.gnome.mutter overlay-key "" | |
# ------------------------------------------------------------------------- | |
# nao instale o pacote "preload", atrapalha mais do que ajuda em gaming PCs | |
# ------------------------------------------------------------------------- | |
# EXTENSOES E TEMAS GNOME 3 | |
# common Gnome extensions, status bar system usage monitor, tab change, audio device output changer | |
# use Gnome Tweak Tool to configure themes, cursors and extensions | |
pacaur -S --noedit gnome-shell-extensions \ | |
gnome-shell-system-monitor-applet-git \ | |
gnome-shell-extension-coverflow-alt-tab-git \ | |
gnome-shell-extension-audio-output-switcher-git \ | |
gtk-theme-arc-git \ | |
arc-icon-theme \ | |
elementary-icon-theme \ | |
adapta-gtk-theme \ | |
ttf-fira-sans \ | |
noto-fonts | |
# Add neofetch to bash | |
pacaur -S --noedit neofetch | |
echo 'neofetch' >> ~/.bashrc | |
# Define nautilus como default handler de diretorios e | |
# faz com que o "mostrar na pasta" do Chrome e outros apps funcione corretamente. | |
xdg-mime default nautilus.desktop inode/directory | |
# Permite que Google Chrome instale extensões do site Gnome | |
pacaur -S --noedit chrome-gnome-shell-git | |
# define número máximo de watches em arquivos | |
# crie ou edite o 99-sysctl.conf | |
sudo nano /etc/sysctl.d/99-sysctl.conf | |
# adicione a linha: | |
fs.inotify.max_user_watches = 524288 | |
# instalar NVM, Node.js e modulos globais mais utilizados | |
pacaur -S nvm | |
# Do source NVM functionality for Bash (or ZSH) | |
echo 'source /usr/share/nvm/init-nvm.sh' > .bashrc | |
# echo 'source /usr/share/nvm/init-nvm.sh' > .zshrc | |
nvm install stable | |
nvm use stable | |
npm i -g gulp grunt webpack electron pm2 express-generator nodemon | |
# Configurar Git para utilizar o Gnome Keyring (opcional e muito particular) | |
# depois de instalados gnome-keyring e libsecret | |
cd /usr/share/git/credential/gnome-keyring | |
sudo make | |
git config --global credential.helper /usr/lib/git-core/git-credential-gnome-keyring | |
# EOF |
Olá @leodutra!
Só poucos comandos desactualizados.
- No MBR, tens de fazer a mesma coisa que GPT:
mount /dev/sdx1 /mnt/boot/efi
-
Quando entrares no chroot, o teu executável não estará disponível. Mas tens de separar o
root
e ochroot
. -
Simplifiquei vários comandos com pacotes para um único comando no fim. Adicionei
networkmanager
no chroot ao invés de utilizador. Mudei de
pacman -S wireless_tools wpa_supplicant wpa_actiond netcf dialog
pacman -S sudo
pacman -S grub-bios
pacman -S grub
para
pacman -S grub grub-bios dialog dosfstools mtools networkmanager os-prober sudo
Adicionei dosfstools
e os-prober
por causa do dual boot.
Também precisa separar o chroot
do utilizador. Divide o teu mesmo executável em três executáveis. Um para root
, um para chroot
e um para utilizador, porque o mesmo executável vai quebrar o chroot
e o utilizador.
Obrigado, @gusbemacbe.
Adicionei na minha lista de tarefas uma atualização, mas seu comentário já ajuda muito enquanto isso.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Ótimo @gusbemacbe.
Teve problemas com comandos desatualizados? Tem um bom tempo que não preciso usar o gist 🙂