chroot script
mount --rbind /dev /mnt/dev && mount --make-rslave /mnt/dev
mount --rbind /dev/pts /mnt/dev/pts && mount --make-rslave /mnt/dev/pts
mount --rbind /proc /mnt/proc && mount --make-rslave /mnt/proc
mount --rbind /sys /mnt/sys && mount --make-rslave /mnt/sys
chroot /mnt /bin/sh
1. Alpine bootstrap
mirror
http://dl-cdn.alpinelinux.org/alpine/
http://mirrors.tuna.tsinghua.edu.cn/alpine/
https://dl-cdn.alpinelinux.org/alpine/MIRRORS.txt
releases/branch :
Each May and November we make a release branch from edge.The main repository is typically supported for 2 years and the community repository
is supported until next stable release.
https://www.alpinelinux.org/releases/
edge,latest-stable,3.18(stable)
3.16-3.18 are maintained
arch supported
aarch64,armhf,armv7,ppc64le,riscv64,s390x,x86,x86_64
repo main,community,testing
download static apk
https://pkgs.alpinelinux.org/packages
https://gitlab.alpinelinux.org/alpine/apk-tools
https://gitlab.alpinelinux.org/alpine/apk-tools/-/releases
https://pkgs.alpinelinux.org/package/edge/main/x86_64/apk-tools-static
https://dl-cdn.alpinelinux.org/alpine/latest-stable/main/x86_64/apk-tools-static-2.14.0-r2.apk
curl -LO $url.apk
tar -xzf apk-tools-static-*.apk
or xbps-install apk-tools
rootfs tarball
https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/
https://dl-cdn.alpinelinux.org/alpine/edge/releases/x86_64/
setup nameserver
cp -L /etc/resolv.conf /mnt/etc/
echo -e 'nameserver 8.8.8.8\nnameserver 2620:0:ccc::2' > /mnt/etc/resolv.conf
setup repo
mkdir -p /mnt/etc/apk
echo "${mirror}/${branch}/main" > ${chroot_dir}/etc/apk/repositories
echo "http://dl-cdn.alpinelinux.org/alpine/latest-stable/main" > /mnt/etc/apk/repositories
echo "http://dl-cdn.alpinelinux.org/alpine/latest-stable/community" >> /mnt/etc/apk/repositories
install base
./sbin/apk.static -X ${mirror}/latest-stable/main -U --allow-untrusted -p ${chroot_dir} --initdb add alpine-base
./sbin/apk.static -X http://dl-cdn.alpinelinux.org/alpine/latest-stable/main -U --allow-untrusted -p /mnt --initdb add alpine-base
doas ./apk.static -X http://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/main -U --allow-untrusted -p /mnt --initdb add alpine-base
post setup
run setup-alpine or setup-devd
community
#alpine-linux #alpine-devel mailing-list
src
https://wiki.alpinelinux.org/wiki/Alpine_Linux_in_a_chroot
2. debian based bootstrap (apt)
apt install debootstrap
apk add debootstrap
/usr/share/debootstrap/scripts/
https://packages.debian.org/bookworm/all/debootstrap/filelist
debootstrap --variant=minbase stable /mnt http://deb.debian.org/debian/
debootstrap --include=apt,bash,dpkg stable
/mnt http://deb.debian.org/debian/
debootstrap --arch amd64 jammy http://np.archive.ubuntu.com/ubuntu/
debootstrap --arch amd64 chimaera /mnt http://deb.devuan.org/merged
debootstrap kali-rolling /mnt http://http.kali.org/kali
wget https://raw.githubusercontent.com/ParrotSec/debootstrap/master/scripts/parrot
sudo mv parrot /usr/share/debootstrap/scripts/
https://deb.parrot.sh/parrot/pool/main/o/openssl/
https://deb.parrot.sh/parrot/pool/main/c/ca-certificates/
https://releases.ubuntu.com/
Ubuntu LTS is maintained for 10 years total: 5 years of standard support + 5 years of ESM. Interim releases are maintained for 9 months.
interim : mantic,lunar
lts : jammy,focal
esm : bionic,xenial,trusty
cat /mnt/etc/apt/sources.list
deb http://np.archive.ubuntu.com/ubuntu jammy main universe restricted
deb http://np.archive.ubuntu.com/ubuntu jammy-security main universe restricted
deb http://np.archive.ubuntu.com/ubuntu jammy-updates main universe restricted
https://help.ubuntu.com/community/Repositories/Ubuntu
rootfs link
http://cdimage.ubuntu.com/ubuntu-base/releases/mantic/release/
http://cdimage.ubuntu.com/ubuntu-base/releases/mantic/release/ubuntu-base-23.10-base-amd64.tar.gz
sudo tar -xvpf Downloads/ubuntu-base-23.10-base-amd64.tar.gz -C /mnt
minial unity
apt-get install xserver-xorg-core xinit
apt-get install libgl1-mesa-dri xserver-xorg-input-libinput
apt-get install dbus dbus-x11
apt-get install unity unity-session notify-osd libnotify-bin
apt-get install ubuntu-settings gsettings-ubuntu-schemas
apt-get install unity-lens-applications unity-lens-files zeitgeist-datahub
apt-get install indicator-session indicator-power indicator-sound
indicator-datetime pulls evolution
apt-get install indicator-application indicator-appmenu
apt-get install unity-control-center hud
apt-get install lightdm unity-greeter fonts-ubuntu
apt-get install gvfs gvfs-backends gvfs-bin policykit-1 udisks2
apt-get install policykit-1-gnome policykit-desktop-privileges
apt-get install nautilus gnome-terminal gedit nautilus-extension-gnome-terminal
apt-get install network-manager-gnome network-manager
apt-get install gdebi synaptic apt-xapian-index software-properties-gtk
apt-get install gnupg dirmngr
apt-get install xdg-user-dirs-gtk
apt-get install gnome-system-log gnome-system-monitor gnome-disk-utility
apt-get install gnome-startup-applications
apt-get install libgdk-pixbuf2.0-bin
apt-get install gstreamer1.0-libav gstreamer1.0-pulseaudio
sudo apt-get install nautilus gnome-terminal gedit nautilus-extension-gnome-terminal
https://www.devuan.org/os/releases
Daedalus stable
Excalibur testing
Ceres unstable
https://www.devuan.org/os/packages
sources.list
deb http://deb.devuan.org/merged daedalus main
deb http://deb.devuan.org/merged daedalus-updates main
deb http://deb.devuan.org/merged daedalus-security main
main non-free-firmware non-free contrib
https://www.debian.org/releases/
Users can expect 3 years of full support for each release and 2 years of extra LTS support
extended lts support : 10 years (i.e. 5 supplementary years after the 5 years offered by the LTS project)
lts : extend the lifetime of all Debian stable releases to (at least) 5 years Supported by LTS team
stable bookworm v12
testing trixie
unstable sid
dpkg-reconfigure
tzdata
dpkg-reconfigure debconf
dpkg-reconfigure locales
dpkg-reconfigure keyboard-configuration
dpkg-reconfigure console-setup
cat /etc/default/locale
LANG=en_US.UTF-8
post-install
apt install systemd-boot tiny-initramfs linux-image-amd64
apt install dialog console-setup locales keyboard-configuration
cat /etc/fstab
UUID=9dc57367-b107-4c9f-9a76-150dc47ae249 / btrfs rw,noatime,compress=zstd 0 0
UUID=e0eeee06-09f6-41cc-a7ac-b0ff3f48fc9e /home ext4 rw,noatime 0 0
cat /efi/loader/entries/debian.conf
title debian
linux /vmlinuz-kali
initrd /initramfs-kali
options rootfstype=btrfs
root=UUID=9dc57367-b107-4c9f-9a76-150dc47ae249
rootflags=rw,noatime,compress=zstd quiet
loglevel=3 systemd.show_status=auto rd.udev.log_level=3
noauto,x-systemd.automount for /home partition to fsck and mount on first access at fstab
silent boot
touch ~/.hushlogin
/etc/sysctl.d/20-quiet-printk.conf
kernel.printk = 3 3 3 3
/etc/hostname
cat /etc/iwd/main.conf
[General]
EnableNetworkConfiguration=true
#AddressRandomization=network
[Network]
NameResolvingService=resolvconf
sudo apt install iwd
systemd-resolved or openresolv bash-completion
ln -rsf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
or rm /etc/resolv.conf
cat /etc
/dbus-1/system.d/iwd-dbus.conf
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy group="kai">
<allow send_destination="net.connman.iwd"/>
</policy>
</busconfig>
cat /etc/modprobe.d/i915.conf
options i915 fastboot=1 enable_fbc=1 enable_guc=3
apt list ?obsolete
apt list ?essential
/etc/apt.conf.d/all
APT {
Install-Recommends "0";
Install-Suggests "0";
Autoremove {
SuggestsImportant "0";
RecommendsImportant "0";
};
};
Acquire {
Languages "none";
GzipIndexes "1";
};
Dir::Cache::srcpkgcache "";
Acquire::IndexTargets::deb::Packages::KeepCompressedAs "xz";
Acquire::IndexTargets::deb::Translations::KeepCompressedAs "xz";
Acquire::IndexTargets::deb-src::Sources::KeepCompressedAs "xz";
cat /etc/apt/preferences.d/ignored-packages
Package: grub-common grub2-common grub-pc grub-pc-bin grub-gfxpayload-lists
Pin: release *
Pin-Priority: -1
dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge
3. archlinux bootstrap
download static pacman
https://pkgbuild.com/~morganamilo/pacman-static/x86_64/bin/
https://archlinux32.andreasbaumann.cc/archlinuxaba/pacman-static/
https://aur.archlinux.org/packages/pacman-static
https://pkgs.org/download/pacman-static
https://mirrors.tuna.tsinghua.edu.cn/arch4edu/x86_64/pacman-static-6.0.2-3-x86_64.pkg.tar.zst
generate mirrorlist
https://archlinux.org/mirrorlist/
https://archlinux.org/mirrorlist/?country=CN&protocol=http&protocol=https&ip_version=4&ip_version=6&use_mirror_status=on
https://archlinux.org/mirrorlist/?country=IN&protocol=http&protocol=https&ip_version=4&ip_version=6&use_mirror_status=on
LTO mirrorlist
https://somegit.dev/ALHP/alhp-mirrorlist/src/branch/master/mirrorlist
pacman config
https://github.com/archlinux/svntogit-packages/blob/packages/pacman/trunk/pacman.conf
https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/pacman/trunk/pacman.conf
archlinux mirrorlist
nano pacman.conf
[options]
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
SigLevel = Never
LocalFileSigLevel = Optional
[core]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
[extra]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
[community]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
artix mirrorlist
nano pacman.conf
[options]
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
SigLevel = Never
[system]
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
[world]
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
[galaxy]
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
sudo apt install ca-certificates
./pacman-static --config pacman.conf --root=/mnt -S bash
chroot /mnt
pacman-key --init
pacman-key --populate archlinux
sudo mkdir -p /mnt/var/lib/pacman/
sudo ./pacman-static --config artix.conf --root=/home/kai/arch -Syu base
init in artix
elogind-dinit elogind-openrc elogind-s6 elogind-runit
4. Fedora Bootstrap
https://admin.fedoraproject.org/mirrormanager/mirrors
https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/39/
https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/39/Container/x86_64/images/
https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/39/Container/x86_64/images/Fedora-Container-Minimal-Base-39-1.5.x86_64.tar.xz
extract 7z x or tar xfvp
cat /mnt/etc/dnf/dnf.conf
clean_requirements_on_remove=True
install_weak_deps=false
dnf5 install systemd htop neofetch nano nnn btrfs-progs zstd
dnf5 install iwd openresolv binutils
dnf5 install audit zram-generator-defaults iproute selinux-policy-targeted fedora-repos-modular mandoc
less intel-media-driver tpm2-tss tpm2 file mpv e2fsprogs fwupd udisks ntfs-3g
systemd-resolved foot foot-terminfo sway polkit pipewire i3blocks pipewire-pulseaudio xdg-desktop-portal-wlr bash-completion
sudo fixfiles onboot
passwd
systemctl --user enable pipewire-pulse.socket
systemctl --user enable wireplumber
cat /etc/kernel/install.conf
layout=uki uki_generator=dracut initrd_generator=dracut
cat /mnt/etc/dracut.conf
hostonly="yes"
compress="zstd"
hostonly_cmdline=no
machine_id=no
uefi_secureboot_cert="/usr/share/secureboot/keys/db/db.pem"
uefi_secureboot_key="/usr/share/secureboot/keys/db/db.key"
kernel_cmdline="root=UUID=9ead9154-c36e-40a1-989a-5f44052220f7 rootflags=rw,seclabel,noatime,compress=zstd quiet"
dracut -fv --kver 6.5.9-300.fc39.x86_64
sudo dnf5 swap fedora-release-identity-container fedora-release-identity-basic
sudo dnf5 search fedora-release-identity-\*
https://docs.fedoraproject.org/en-US/quick-docs/rpmfusion-setup/
sudo dnf install \ https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install \ https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
dnf5 updateinfo list
5. Opensuse bootstrap
install zyper
sudo zypper --root /mnt/ ar --refresh https://download.opensuse.org/tumbleweed/repo/oss/ oss
sudo zypper --root /mnt/ in zypper bash shadow util-linux
sudo zypper --root /mnt/ in --no-recommends zypper bash shadow util-linux ca-certificates-mozilla neofetch
grub2 vim man kernel-defaultsway
minimal_base
gnome_basic
basic_desktop
/etc/zypp/zypp.conf
solver.onlyRequires = true
zypper se minimal_base
zypper in --no-recommends patterns-base-minimal_base
zypper in --no-recommends NetworkManager
zypper in ucode-intel kernel-firmware-i915 openresolv iwd kernel-firmware-ath10k binutils kernel-default-base
tumbleweed
zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/' packman
leap
zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' packman
zypper refresh
zypper dist-upgrade --from packman --allow-vendor-change
zypper install --from packman ffmpeg
gstreamer-plugins-{good,bad,ugly,libav} libavcodec vlc-codecs http://packman.links2linux.org/
https://en.opensuse.org/openSUSE:Expert_Installation
6. void bootstrap
get static xbps
https://docs.voidlinux.org/xbps/troubleshooting/static.html
https://repo-default.voidlinux.org/static
https://repo-default.voidlinux.org/static/xbps-static-0.33_4.x86_64-musl.tar.xz
tar xf xbps-static-0.33_4.x86_64-musl.tar.xz
for musl
REPO=https://alpha.de.repo.voidlinux.org/current/musl
ARCH=x86_64
-musl
XBPS_ARCH=$ARCH ./xbps-install -S -r /mnt -R "$REPO" base-system
XBPS_ARCH=x86_64
-musl
./xbps-install -S -r /mnt -R "https://alpha.de.repo.voidlinux.org/current/musl
" base-system
https://docs.voidlinux.org/installation/guides/chroot.html
glibc mirror
# REPO=https://repo-default.voidlinux.org/current
set arch if using static xbps as its musl linked and defaults to so
# ARCH=x86_64
# mkdir -p /mnt/var/db/xbps/keys
# cp var/db/xbps/keys/* /mnt/var/db/xbps/keys/
# XBPS_ARCH=$ARCH ./xbps-install -S -r /mnt -R "$REPO" base-system
XBPS_ARCH
=x86_64 ./xbps-install --sync --rootdir /mnt --repository=
https://repo-default.voidlinux.org/current
base-system
or base-minimal
export SSL_NO_VERIFY_PEER=1
nano /etc/xbps.d/noextract.conf
#clean locales
noextract=/usr/share/locale/*
noextract=!/usr/share/locale/locale.alias
#clean manpage
noextract=/usr/share/man/*
noextract=!/usr/share/man/man*
noextract=/usr/share/backgrounds/*
noextract=/usr/lib/d3d/*
oldnoextract.conf
noextract=!/usr/share/locale/en/*
noextract=!/usr/share/locale/en@quot/*
noextract=!/usr/share/locale/en@boldquot/*
noextract=!/usr/share/locale/en@shaw/*
noextract=!/usr/share/locale/en_US/*
noextract=/usr/share/locale/*
#clean manpage
noextract=!/usr/share/man/man[1-9]/*
noextract=!/usr/share/man/en*/*
noextract=/usr/share/man/*
xbps-install tzdata
mdocml grim slurp jq wl-clipboard
alsa-lib alsa-utils apulse base-files bash bash-completion btrfs-progs coreutils dash dbus-glib desktop-file-utils
diffutils dumb_runtime_dir eudev file findutils foot foot-terminfo glibc-locales grep gzip hicolor-icon-theme
htop iana-etc intel-media-driver mdocml mesa-dri mpv nano neofetch nnn ntfs opendoas openresolv runit-void
seatd sed shadow sway tzdata util-linux wofi xbps zstd
xbps-reconfigure -fa
cat /etc/xbps.d/ignoreold.conf
ignorepkg=linux-firmware-amd
ignorepkg=linux-firmware-intel
ignorepkg=linux-firmware-nvidia
ignorepkg=linux-firmware-broadcom
ignorepkg=linux-firmware-network
ignorepkg=dbus
ignorepkg=dbus-x11
ignorepkg=nvi
ignorepkg=ffplay
ignorepkg=dracut
cat /etc/xbps.d/igonre.conf
ignorepkg=xorg-server-xwayland
ignorepkg=ffplay
ignorepkg=adwaita-icon-theme
ignorepkg=swaybg
ignorepkg=dbus
ignorepkg=dbus-x11
xbps-query -m | awk -F'-[0-9]' '{ print $1 }'
7 . Gentoo bootstrap
https://www.gentoo.org/downloads/
https://distfiles.gentoo.org/releases/amd64/autobuilds/
curl https://distfiles.gentoo.org/releases/amd64/autobuilds/latest-stage3.txt
sudo tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner -C /mnt
nano -w /mnt/etc/portage/make.conf
COMMON_FLAGS="-march=native -O2 -pipe"
#equal to nproc
MAKEOPTS="-j4"
ACCEPT_LICENSE="*"
VIDEO_CARDS="intel "
INPUT_DEVICES="libinput"
USE="-dbus -elogind -gnome -kde -consolekit -polkit -introspection -pulseaudio -llvm"
mkdir -p /mnt/etc/portage/repos.conf
cp /mnt/usr/share/portage/config/repos.conf /mnt/etc/portage/repos.conf/gentoo.conf
cat /mnt/etc/portage/repos.conf/gentoo.conf
cat /mnt/etc/resolv.conf
nameserver 1.1.1.1
echo "Asia/Kathmandu" > /etc/timezone
emerge --config sys-libs/timezone-data
nano /etc/locale.gen
en_US.UTF-8 UTF-8
locale-gen
eselect locale list
eselect locale set N
emerge --ask app-portage/cpuid2cpuflags
cpuid2cpuflags
CPU_FLAGS_X86: aes avx avx2 avx512f avx512dq avx512cd avx512bw avx512vl avx512vbmi f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 ssse3
echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags
emerge --deselect gnumeric
for iwdhttps://iwd.wiki.kernel.org/gettingstartedscripts/config --enable CONFIG_CRYPTO_USER_API_SKCIPHER scripts/config --enable CONFIG_CRYPTO_USER_API_HASH scripts/config --enable CONFIG_CRYPTO_HMAC scripts/config --enable CONFIG_CRYPTO_CMAC scripts/config --enable CONFIG_CRYPTO_MD4 scripts/config --enable CONFIG_CRYPTO_MD5 scripts/config --enable CONFIG_CRYPTO_SHA256 scripts/config --enable CONFIG_CRYPTO_SHA512 scripts/config --enable CONFIG_CRYPTO_AES scripts/config --enable CONFIG_CRYPTO_ECB scripts/config --enable CONFIG_CRYPTO_DES scripts/config --enable CONFIG_CRYPTO_CBCportage git sync
emerge -a
app-eselect/
eselect-repository dev-vcs/git
eselect repository remove gentoo
eselect repository add gentoo git https://github.com/gentoo-mirror/gentoo.git
portageq repos_config /
emaint sync -r gentoo
https://wiki.gentoo.org/wiki/Eix
mkdir
/etc/portage/env/
/etc/portage/env/eix-extra-econf.conf
EXTRA_ECONF="--enable-security --enable-new-dialect --enable-strong-optimization"
/etc/portage/package.env/eixapp-portage/eix eix-extra-econf.conf
emerge --ask app-portage/eix
/etc/eixrc/01-cache
OVERLAY_CACHE_METHOD="assign"
media-libs/mesahttps://packages.gentoo.org/packages/sys-kernel/gentoo-sourcesemerge -a wofi
nano /etc/portage/profile/package.provided
x11-themes/adwaita-icon-theme-44.0
gnome-base/librsvg-2.56.3
etc/portage/package.use/all
app-admin/doas persist
media-libs/mesa vaapi zink
sys-auth/seatd server builtin
gui-wm/sway -swaynag
x11-misc/i3blocks -contrib
media-video/mpv -xv alsa vaapi alsa drm
media-video/ffmpeg
dev-libs/light udevmedia-video/ffmpeg mp3 alsa libdrm x264 x265 vaapi alsa
net-wireless/wpa_supplicant tkip wps wep
*/* CPU_FLAGS_X86: aes avx avx2 avx512f avx512dq avx512cd avx512bw avx512vl avx512vbmi f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 ssse3
Comments
Post a Comment