Debian Debootstrap Install (AKA Installing Debian "the Arch way") + Systemd
نکاتی چند:
1-
منظور از (AKA Installing Debian "the Arch way") چیست؟
توزیع آرچ لینوکس به همین روش نصب میشود. AKA میشه مخفف also known as. در فارسی میتوانیم بگوییم «به عبارت دیگر».
یعنی دارد میگوید با این روش دارید دبیان رو شبیه آرچ نصب میکنید.
در اینجا منظور از آرچ، به معنای معماری یا مثلاً CPU Architecture نمی باشد.
منظور توزیع آرچ لینوکس است.
2-
قبل از اینکه این دستورات را اجرا کنید، بایستی قبلا هاردتان را پارتیشن بندی کنید مثلا با gparted. دستورات مرتبط با mkfs که در اینجا بکار رفته است تنها برای فرمت کردن پارتیشن مورد نظر است نه برای ایجاد پارتیشن. مثلا پارتیشن را با mkfs به ext4 یا fat 32 فرمت کرده ایم.
3-
پارتیشنبندی سیستم من به این صورت است، شما میتوانید آنها را طبق پارتیشنبندی سیستم خود تغییر دهید:
dev/sda1/ برای efi
dev/sda2/ برای swap
dev/sda3/ برای root
dev/sda4/ برای home
3-
شما باید در مسیر هدف نصب (یعنی داخل mnt/ ) مونت کنید، نه در مسیر سیستم زنده.
4-
بهجای terminal در اینجا سعی کنید از tmux یا TTY استفاده کنید، چون ممکن است برخی از ترمینالها هنگام chroot شدن در محیط Debootstrap به دلیل فقدان برخی بستهها، عملکرد نامناسبی داشته باشند. استفاده از tmux یا TTY سریعتر و سادهتر از پیدا کردن بستههای مفقودی است که به ناچار بعداً پس از اتمام این فرآیند نصب خواهند شد.
به عبارت دیگر وقتی داخل محیط زنده (Live) یا SSH هستید:
اگر ارتباط قطع شود یا ترمینال بسته شود، دستوراتی که در حال اجرا هستند متوقف میشوند.
در محیط chroot برخی ابزارها (مثل terminfo, ncurses, locale) هنوز نصب نشدهاند، و ترمینال گاهی رفتار عجیبی دارد.
اما وقتی از tmux استفاده کنید:
جلسهی کاری در حافظه میماند، حتی اگر ترمینال بسته شود.
میتوانید دوباره با tmux attach به همان نقطه برگردید.
در صورت خطا در ترمینال، tmux از قطع شدن ارتباط جلوگیری میکند.
وقتی از tmux استفاده کنی:
جلسهی کاری در حافظه میماند، حتی اگر ترمینال بسته شود.
میتوانید دوباره با tmux attach به همان نقطه برگردید.
در صورت خطا در ترمینال، tmux از قطع شدن ارتباط جلوگیری میکند.
5-
توضیح در مورد:
# /usr/sbin/debootstrap --variant=minbase --include=vim trixie /mnt http://deb.debian.org/debian/
variant=minbase-- یعنی فقط بسته های ضروری و apt را نصب کن.
include=vim-- یعنی اینکه نرمافزار vim ( که در chroot لازممان می شود) را هم برایم نصب کن.
trixie نام دبیانی که می خواهیم نصب شود است.
mnt/ مسیری که بایستی فایل های دانلود شده در آن ریخته شود.
/http://deb.debian.org/debian برو به این آدرس و فایل ها و پوشه های مربوطه را برایم دانلود کن.
arch-- :
با arch-- میتوانید مشخص کنید برای چه معماری (CPU Architecture) سیستم ساخته شود.در اینجا من از این فلگ (در دستورات لینوکس، فلگ با یک خط تیره - و حروف نوشته میشود و گزینهها و آرگومانهای اضافی را به دستور اضافه میکند.) استفاده نکرده ام.
ولی اگر بخواهید استفاده کنید:
برای سیستمهای ۶۴ بیتی (معمولی)
arch=amd64--
# برای سیستمهای ۳۲ بیتی قدیمی
arch=i386--
# برای سیستمهای مبتنی بر ARM (مثل رزبریپای)
arch=armhf # 32-bit ARM--
arch=arm64 # 64-bit ARM-
6-
در دستورات زیر، به جای yourhostname نام میزبان دلخواه خود و به جای yourusername نام کاربری دلخواه خود را قرار دهید.
7-
در خط فرمان به تفاوت بین :
user@debian:~$
root@debian:~#
root@debian:/#
حتما توجه کنید، که مسیرهای کاملا متفاوتی را نشان می دهند.
8-
با نصب بسته sudo ، همانطور که خواهید دید
دبیان یک فایل sudoers از پیش پیکربندی شده ارائه میدهد و احتمالاً نیازی به تغییر چیزی ندارید، اما بهتر است که با دستور cat /etc/sudoers مطمئن شوید که خط زیر «allow members of group sudo …” کامنت نشده است. به خروجی نگاه کنید و اگر خط کامنت شده است، از دستور visudo استفاده کنید و آن را از حالت کامنت خارج کنید.
#############################Debian+Debootstrap+Install+minimal+systemd+the Arch way#######################
###########################################################################################################
##### This is how my system partitioning is, you can change them according to your system partitioning.####
##### /dev/sda1 for efi, /dev/sda2 for swap, /dev/sda3 for root, /dev/sda4 for home########################
##### You must use the Debian live distribution.###########################################################
###########################################################################################################
##### Before you run these commands, you should first partition your hard drive, for example with gparted.#
##### The mkfs commands used here are only for formatting the desired partition, not for creating it.######
##### For example, we formatted the partition with mkfs to ext4 or fat 32.#################################
###########################################################################################################
##### In the following commands, replace yourhostname with your desired host name and yourusername ########
##### with your desired username.##########################################################################
###########################################################################################################
##### On the command line, be sure to note the difference between user@debian:~$ and ######################
##### root@debian:~# and root@debian:/#, which represent completely different paths.#######################
##### #####################################################################################################
##### you need to decide if you want sudo or doas in order to elevate your user’s privileges for###########
##### updates, etc… This is your choice.Debian provides a pre-configured sudoers file, and you ############
##### probably don’t need to change anything, but it’s wise to verify that the line #######################
##### under “allow members of group sudo …” is not commented out with the cat /etc/sudoers command.########
##### Look at the output, and if the line is commented out, use the visudo command and uncomment it.#######
###########################################################################################################
user@debian:~$ sudo apt install tmux
user@debian:~$ tmux
user@debian:~$ sudo su -
root@debian:~#
root@debian:~# apt update && apt install debootstrap arch-install-scripts -y
root@debian:~# mkfs.fat -F 32 /dev/sda1
root@debian:~# mkswap /dev/sda2
root@debian:~# swapon /dev/sda2
root@debian:~# mkfs.ext4 /dev/sda3
root@debian:~# mkfs.ext4 /dev/sda4
root@debian:~# mount /dev/sda3 /mnt
root@debian:~# mkdir -p /mnt/{boot,home}
root@debian:~# mount /dev/sda4 /mnt/home
root@debian:~# mkdir -p /mnt/boot/efi
root@debian:~# mount /dev/sda1 /mnt/boot/efi
root@debian:~# mount | grep sda
root@debian:~# ls /usr/share/debootstrap/scripts/
root@debian:~# /usr/sbin/debootstrap --variant=minbase --include=vim trixie /mnt http://deb.debian.org/debian/
root@debian:~# genfstab -U /mnt >> /mnt/etc/fstab
root@debian:~# echo deb http://deb.debian.org/debian trixie main contrib non-free-firmware non-free > /mnt/etc/apt/sources.list
root@debian:~# echo deb http://deb.debian.org/debian-security trixie-security main contrib non-free-firmware non-free >> /mnt/etc/apt/sources.list
root@debian:~# echo deb http://deb.debian.org/debian/ trixie-updates main contrib non-free-firmware non-free >> /mnt/etc/apt/sources.list
root@debian:~# arch-chroot /mnt
root@debian:/#
root@debian:/# apt update
root@debian:/# apt install systemd systemd-sysv libpam-systemd libsystemd0
root@debian:/# apt install linux-image-amd64
root@debian:/# dpkg-reconfigure tzdata
root@debian:/# apt install network-manager
root@debian:/# echo "yourhostname" > /etc/hostname
root@debian:/# echo "127.0.0.1 localhost yourhostname" > /etc/hosts
root@debian:/# echo "::1 localhost ip6-localhost ip6-loopback" >> /etc/hosts
root@debian:/# echo "fe00::0 ip6-localnet" >> /etc/hosts
root@debian:/# echo "ff00::0 ip6-mcastprefix" >> /etc/hosts
root@debian:/# echo "ff02::1 ip6-allnodes" >> /etc/hosts
root@debian:/# echo "ff02::2 ip6-allrouters" >> /etc/hosts
root@debian:/# apt install locales
root@debian:/# dpkg-reconfigure locales
root@debian:/# apt install console-setup
root@debian:/# dpkg-reconfigure keyboard-configuration
root@debian:/# passwd
root@debian:/# useradd -m yourusername
root@debian:/# passwd yourusername
root@debian:/# usermod -aG cdrom,floppy,audio,dip,video,plugdev,netdev yourusername
root@debian:/# usermod -s /bin/bash yourusername
root@debian:/# apt install sudo
root@debian:/# usermod -aG sudo yourusername
root@debian:/# cat /etc/sudoers
root@debian:/# apt install e2fsprogs
root@debian:/# apt install firmware-linux
root@debian:/# apt install grub-efi-amd64
root@debian:/# grub-install --target=x86_64-efi --efi-directory=/boot/efi
root@debian:/# update-grub
root@debian:/# apt clean
root@debian:/# exit
root@debian:~# rm /mnt/etc/resolv.conf
root@debian:~# umount /dev/sda1
root@debian:~# umount /dev/sda4
root@debian:~# umount /dev/sda3