Este é um guia de instalação do Ubuntu via debootstrap. Este método visa instalar o Ubuntu de forma semelhante ao Arch Linux. Este esquema abaixo criará um sistema com duas partições, uma para /boot/efi
com exatos 512 MiB, e /
usará o resto com o filesystem BTRFS. Os subvolumes serão /
, /home
, /var/cache/apt/archives
, /var/log
e /.snapshots
, além de usar o systemd-boot como bootloader do sistema.
-
-
Save henriquepicanco/1a8e5ca1aa114aa4e6c25b791f8080dc to your computer and use it in GitHub Desktop.
Podemos usar um Live-CD do Ubuntu para isto. Não precisa ser exatamente um Live-CD da versão que deseja usar, ou seja, pode-se usar o Live-CD do Ubuntu 24.10 para instalar o Ubuntu 24.04 LTS, e o inverso também é verdadeiro.
# parted /dev/sdX mklabel gpt mkpart '"EFI system partition"' fat32 1MiB 513MiB mkpart '"Basic data partition"' btrfs 513MiB 100% set 1 esp on
# mkfs.fat -F 32 /dev/sdX1
# mkfs.btrfs /dev/sdX2
# mount /dev/sdX2 /mnt
# btrfs subvolume create /mnt/@
# btrfs subvolume create /mnt/@home
# btrfs subvolume create /mnt/@packages
# btrfs subvolume create /mnt/@log
# btrfs subvolume create /mnt/@.snapshots
# mount -m -o noatime,compress=zstd:7,space_cache=v2,subvol=@ /dev/sdX2 /mnt
# mount -m -o noatime,compress=zstd:7,space_cache=v2,subvol=@home /dev/sdX2 /mnt/home
# mount -m -o noatime,compress=zstd:7,space_cache=v2,subvol=@packages /dev/sdX2 /mnt/var/cache/apt/archives
# mount -m -o noatime,compress=zstd:7,space_cache=v2,subvol=@log /dev/sdX2 /mnt/var/log
# mount -m -o noatime,compress=zstd:7,space_cache=v2,subvol=@.snapshots /dev/sdX2 /mnt/.snapshots
# mount -m -o umask=0077,dmask=0077 /dev/sdX1 /mnt/boot/efi
# apt install debootstrap neovim
Troque VERSION
abaixo pela versão do Ubuntu que você deseja usar. noble
instalará o Ubuntu 24.04 LTS, oracular
instalará o Ubuntu 24.10.
# debootstrap VERSION /mnt http://br.archive.ubuntu.com/ubuntu
# nvim /mnt/etc/apt/preferences.d/ignored-packages
Neste arquivo, adicione:
Package: snapd cloud-init landscape-common ubuntu-advantage-tools grub* ubuntu-desktop*
Pin: release *
Pin-Priority: -1
# nvim /mnt/etc/apt/sources.list
No arquivo, edite para ficar semelhante ao seguinte. Atente-se que VERSION
deve ser igual ao que foi especificado no comando debootstrap
:
deb http://br.archive.ubuntu.com/ubuntu VERSION main restricted universe multiverse
deb http://br.archive.ubuntu.com/ubuntu VERSION-security main restricted universe multiverse
deb http://br.archive.ubuntu.com/ubuntu VERSION-updates main restricted universe multiverse
# mount -t proc /proc /mnt/proc
# mount -t sysfs /sys /mnt/sys
# mount --rbind /dev /mnt/dev
# mount --rbind /run /mnt/run
# mount --rbind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
# LANG=C.UTF-8 chroot /mnt /bin/bash
# apt update
# apt upgrade
# dpkg-reconfigure tzdata
# dpkg-reconfigure locales
# dpkg-reconfigure keyboard-configuration
# echo "Casper-MAGI-01" > /etc/hostname
# echo "127.0.0.1 Casper-MAGI-01" >> /etc/hosts
# useradd -m -c "Henrique Picanço" -G sudo -s /bin/bash usuario
# passwd usuario
# passwd -l root
# apt install network-manager btrfs-progs curl git btop man needrestart openssh-server tmux neovim
O Ubuntu usa o Netplan para gerenciar conexões. Por padrão, ele não se conectará a nada, mas podemos configurar o Netplan com um arquivo em /etc/netplan
.
# vim /etc/netplan/networkmanager.yaml
No arquivo, adicione:
network:
version: 2
renderer: NetworkManager
ethernets:
ens1p0:
dhcp4: true
dhcp6: true
# nvim /etc/fstab
No arquivo, edite para ficar semelhante ao seguinte:
PARTUUID=NUM_BTRFS / btrfs noatime,compress=zstd:7,space_cache=v2,subvol=@ 0 0
PARTUUID=NUM_BTRFS /home btrfs noatime,compress=zstd:7,space_cache=v2,subvol=@home 0 0
PARTUUID=NUM_BTRFS /var/cache/apt/archive btrfs noatime,compress=zstd:7,space_cache=v2,subvol=@packages 0 0
PARTUUID=NUM_BTRFS /var/log btrfs noatime,compress=zstd:7,space_cache=v2,subvol=@log 0 0
PARTUUID=NUM_BTRFS /.snapshots btrfs noatime,compress=zstd:7,space_cache=v2,subvol=@.snapshots 0 0
PARTUUID=NUM_VFAT /boot/efi vfat umask=0077,dmask=0077 0 2
Por fim, use o sed
para adicionar os PARTUUIDs das partições:
# sed -i "s/NUM_BTRFS/$(blkid -s PARTUUID -o value /dev/sdX2)/" /etc/fstab
# sed -i "s/NUM_VFAT/$(blkid -s PARTUUID -o value /dev/sdX1)/" /etc/fstab
O comando abaixo instalará o Kernel mais recente disponível.
# apt install --no-install-recommends linux-{,image-,headers-}generic linux-firmware initramfs-tools efibootmgr
Primeiro, editamos o /etc/kernel/cmdline
:
# echo "root=PARTUUID=$(blkid -s PARTUUID -o value /dev/sdX2) rootflags=subvol=@ rw quiet splash" > /etc/kernel/cmdline
Por fim, instale o systemd-boot e o plymouth. Ambos serão configurados automaticamente.
# apt install systemd-boot plymouth
# exit
# umount -l /mnt
# reboot