-
با سلام و عرض ادب و احترام.
در اینترنت صفحه وبی که آموزش نصب دبیان از طریق Debootstrap را می داد را دیدم:
https://ianlecorbeau.com/blog/debian-debootstrap-install.html (https://ianlecorbeau.com/blog/debian-debootstrap-install.html)
عکس های مربوط به این نصب ایشان را در این ارسالی و ارسال بعدی گذاشته ام.
علاقهمند شدم که من هم تلاشم را برای نصب Debian GNU/Linux 13.1.0 _Trixie را از طریق روشی که ایشان گفته، بکار ببرم.
چون دوست دارم، این ها را در سیستم اصلی ام اجرا می نمایم و نه در ماشین مجازی.
در ارسال های بعدی کارهایی که در اینباره انجام داده ام و اشکالات و سؤالاتی که با آنها مواجه شده ام را خدمتتان ارسال می نمایم.
-
ادامه عکس ها:
-
سال ۲۰۱۵ یک مقاله با همین موضوع در سایت اوبونتو نیوز نوشته بودم. یادش بخیر.
فایل PDFش رو اگه خواستی برات میفرستم. هرچند از اون سال تا الان یک سری از موارد قطعاً تغییر کرده ولی سر راست و خلاصه هست.
پ.ن: با این روش شما اوبونتو رو هم میتونی نصب کنی. بستگی داره چه مخزنی از توزیعهای برپایهٔ دبیان بهش بدی.
-
ممنون آقای سعیدنژاد از محبتتان، ممنون می شوم که فایل مربوطه را برایم بفرستید.
-
ممنون آقای سعیدنژاد از محبتتان، ممنون می شوم که فایل مربوطه را برایم بفرستید.
خدمت شما
-
خیلی محبت فرمودید.
-
با رخصت و اجازه از استاد عزیزم آقای سعیدنژاد، فعلاً روش Ian LeCorbeau را ادامه می دهم.
مرحله 1)
ابتدا یکی از دبیان های لایو را از لینک زیر دانلود کردم.:
https://cdimage.debian.org/images/release/current-live/amd64/iso-hybrid/ (https://cdimage.debian.org/images/release/current-live/amd64/iso-hybrid/)
من debian-live-13.1.0-amd64-cinnamon.iso را انتخاب کردم.
مرحله 2)
نرمافزار tmux را نصب می کنیم:
sudo apt install tmux
مرحله 3) عکس 1
از این به بعد من از نرمافزار tmux استفاده می نمایم. کافیست در ترمینال tmux را بنویسید و اینتر را بزنید تا این برنامه اجرا شود.
بسته های debootstrap و arch-install-scripts را نصب می نمایم:
# apt update && apt install debootstrap arch-install-scripts -y
مرحله 4) عکس های 2 ، 3 ، 4 و 5
چون من می خواهم به روش EFI ، دبیان را نصب کنم، پس بهتر است که پارتیشن های EFI و
swap و root و home را بسازم.
برای من پارتیشن بندی ها به این نحو خواهد شد:
dev/sda1 برای پارتیشن EFI
dev/sda2 برای پارتیشن swap
dev/sda3 برای پارتیشن root
dev/sda4 برای پارتیشن home
یادتان باشد برای اینکه خطا ندهد، پارتیشن ها را unmount کنید.
من در اینجا از این دستورات استفاده کردم:
# mkfs.fat -F 32 /dev/sda1
# mkswap /dev/sda2
# swapon /dev/sda2
# mkfs.ext4 /dev/sda3
# mkfs.ext4 /dev/sda4
سوال:
با توجه به
Do yourself a favor before starting, and either use tmux or drop to a tty. Reason: some terminals might misbehave when chrooted in the bootstrapped environment due to some missing packages. Using tmux or a TTY is quicker and simpler than hunting down those missing packages which will inevitably get installed later when you’re finished with this process.
آیا پیشنهاد می کنید که بهطور کل همیشه بجای ترمینال از tmux استفاده کنیم؟
سوال:
ایشان در اینجا
On EFI systems:
# mkfs.fat -F 32 /dev/sdX1
# mkswap /dev/sdX2
# swapon /dev/sdX2
# mkfs.ext4 /dev/sdX3
# mkfs.ext4 /dev/sdX4
# mount /dev/sdX3 /mnt
# mkdir -p /mnt/{boot,home}
# mount /dev/sdX1 /boot/efi
# mount /dev/sdX4 /mnt/home
On legacy/bios systems:
# mkswap /dev/sdX1
# swapon /dev/sdX1
# mkfs.ext4 /dev/sdX2
# mkfs.ext4 /dev/sdX3
# mount /dev/sdX2 /mnt
# mkdir -p /mnt/home
# mount /dev/sdX3 /mnt/home
برای پارتیشن بندی هم روش EFI systems و هم روش legacy/bios systems را گفته است. هر چند که من می خواهم از روش EFI استفاده نمایم، آیا می شود دبیان 13 را به حالت legacy/bios نصب کرد؟ چرا ایشان روش legacy/bios را هم گفته است؟
-
مرحله 5)
بعد از فرمت کردن پارتیشن ها، این سه دستور با موفقیت انجام شد: عکس 1
# mount /dev/sda3 /mnt
# mkdir -p /mnt/{boot,home}
# mount /dev/sda4 /mnt/home
اشکال:
ولی در این دستور خطا داد: عکس 2
# mount /dev/sda1 /boot/efi
-
این خروجی دقیقاً نشان میدهد چرا mount خطا داده :
mount: /boot/efi: mount point does not exist.
یعنی پوشهای به نام /boot/efi در حال حاضر در سیستم زنده (Live Debian) وجود ندارد.
اما نکته مهمتر این است که شما باید در مسیر هدف نصب (یعنی داخل /mnt) مونت کنید، نه در مسیر سیستم زنده.
اگر root را روی /dev/sda3 مونت کردهاید (همانطور که گفتید)، مراحل درست به ترتیب این است:
# mount /dev/sda3 /mnt
# mkdir -p /mnt/{boot,home}
# mount /dev/sda4 /mnt/home
# mkdir -p /mnt/boot/efi
# mount /dev/sda1 /mnt/boot/efi
/boot/efi باید داخل /mnt ساخته شود، چون هنوز دارید محیط جدید دبیان را آماده میکنید، نه سیستم فعلی لایو را.
اگر بعد از این دستورات خروجی mount را اجرا کنید:
mount | grep sda
باید چیزی شبیه به این ببینید:
/dev/sda3 on /mnt type ext4 (...)
/dev/sda4 on /mnt/home type ext4 (...)
/dev/sda1 on /mnt/boot/efi type vfat (...)
که نشان میدهد همه چیز درست مونت شده و آماده اجرای debootstrap است.
-
آفرین برآقای Chappie .
با توضیحات شما الان متوجه شدم!!!
همچنانکه در عکس 1 ،گذاشته ام نویسنده مطلب بجای /mnt/boot/efi از /boot/efi استفاده کرده بود، و
همچنین پوشه /mnt/boot/efi را نساخته بود و من از ایشان کپی کرده بودم و خطا داده بود.
ممنون.
-
✋🙏
-
در مورد اون دو سوالی که بالاتر بولد کردید :
جواب سوال اول :
وقتی داخل محیط زنده (Live) یا SSH هستی:
اگر ارتباط قطع شود یا ترمینال بسته شود، دستوراتی که در حال اجرا هستند متوقف میشوند.
در محیط chroot برخی ابزارها (مثل terminfo, ncurses, locale) هنوز نصب نشدهاند، و ترمینال گاهی رفتار عجیبی دارد.
اما وقتی از tmux استفاده کنی:
جلسهی کاری تو در حافظه میماند، حتی اگر ترمینال بسته شود.
میتوانی دوباره با tmux attach به همان نقطه برگردی.
در صورت خطا در ترمینال، tmux از قطع شدن ارتباط جلوگیری میکند.
- - -
جواب سوال دوم :
دبیان ۱۳ (Trixie) هم مثل نسخههای قبل از هر دو روش UEFI و Legacy BIOS (CSM) پشتیبانی میکند.
چون روش debootstrap «نصب دستی» است، نه محدود به نوع خاصی از سیستم.
او خواسته که مقالهاش برای هر دو نوع سختافزار (قدیمی و جدید) قابل استفاده باشد.
مثلاً:
اگر کسی لپتاپ جدید دارد → از روش EFI استفاده کند.
اگر کسی سیستم قدیمیتر دارد (یا با VirtualBox کار میکند که BIOS emulation دارد) → روش legacy را بزند.
به عبارت بهتر دلیلش اینه که هر دو مدل را در مقاله اش گفته باشد . دلیل خاصی ندارد .
- - -
-
اصلاح مرحله 5)
همانطور که آقای Chappie گفتند، ترتیب درست این مرحله بدین صورت است:
عکس 1
# mount /dev/sda3 /mnt
# mkdir -p /mnt/{boot,home}
# mount /dev/sda4 /mnt/home
# mkdir -p /mnt/boot/efi
# mount /dev/sda1 /mnt/boot/efi
و برای اینکه ببینیم همه چیز درست مونت شده و آماده اجرای debootstrap است، از این دستور استفاده می کنیم:
عکس 2
mount | grep sda
-
با تشکر از آقای Chappie ، بخاطر پاسخگویی به دو سؤال قبلی.
مرحله 6)
ابتدا بایستی مشخص کنیم که آیا debootstrap ، نسخه ی دبیانی که ما می خواهیم نصب کنیم، را پشتیبانی می کند یا نه؟
debootstrap شامل اسکریپتهایی است که به جز Debian، توانایی راهاندازی سایر توزیعها از جمله Ubuntu و Devuan را دارد. برای بررسی نسخههای مختلف پشتیبانی شده از توزیعهای مذکور میتوان از دستور زیر استفاده کرد.
$ ls /usr/share/debootstrap/scripts/
https://wiki.ubuntu-ir.org/wiki/Debootstrap (https://wiki.ubuntu-ir.org/wiki/Debootstrap)
با این دستور اجرا کنید:
# ls /usr/share/debootstrap/scripts/
همانطورکه در عکس 1 می بینید از Debian Trixie ، پشیبانی می کند.
-
مرحله 7)
در ادامه می رسیم به:
Deboostrap
With the disk partitioned and partitions mounted, we now run the debootstrap command.
We will need a cli text editor in the chroot to modify some files,
so we include one already. I use vim, but choose whatever floats your boat.
# /usr/sbin/debootstrap --variant=minbase --include=vim bookworm \
# /mnt http://deb.debian.org/debian/
ولی دو دستوری که در اینجا قرار داده شده برای من بهدرستی کار نکرد. هرچند که بجای bookworm از کلمه trixie استفاده کردم، ولی بهرحال درست کار نکرد.
بنابراین من از دستور دیگری استفاده می نمایم:
# /usr/sbin/debootstrap --variant=minbase --include=vim trixie /mnt http://deb.debian.org/debian/
عکس 1 و 2 و 3
اینبار بنظرم با این دستور نتیجه دلخواه را گرفتیم.
بنظر من برای اینکه ببینیم که آیا این دستور بهدرستی کار کرده است یا نه، باید توجه کنیم که در آخر خروجی دستور بالا این جمله Base system installed successfully نوشته شده باشد.
و دیگر اینکه برویم در دایرکتوری mnt و نگاه کنیم که دایرکتوری های مربوطه واقعا نصب شده است یا نه. عکس 3 نشان می دهد که با این دستور دایرکتوری های مربوطه نصب شده اند.
با مقایسه بین عکس 3 که ماحصل دستور Deboostrap با عکس 4 که مربوط به دایرکتوری های ریشه توزیع زنده دبیان است، در همان نگاه اول می توان دید که دو فایل
initrd.img و vmlinuz
هنوز در سیستمی که می خواهیم طراحی کنیم، ایجاد نگردیده اند.
توضیح اضافی:
variant=minbase-- یعنی فقط بسته های ضروری و apt را نصب کن.
include=vim-- یعنی اینکه نرمافزار vim ( که در chroot لازممان می شود) را هم برایم نصب کن.
trixie نام دبیانی که می خواهیم نصب شود است.
mnt/ مسیری که بایستی فایل های دانلود شده در آن ریخته شود.
/http://deb.debian.org/debian برو به این آدرس و فایل ها و پوشه های مربوطه را برایم دانلود کن.
سوال:
اگر بخواهیم برای ساختارهای دیگر، دبیان را پیکربندی کنیم، آیا می توانیم از آپشن های زیر استفاده کنیم:
arch amd64--
arch arm--
سوال:
سازندگان توزیع های نشأت گرفته از دبیان مانند ubuntu و mint و antix و … آیا برای ساخت توزیع اشان از
Deboostrap استفاده می کنند؟
-
علامت \ در انتهای خط در شل (bash) یعنی:
«این دستور هنوز تمام نشده، ادامهاش در خط بعد است.»
در مثال اصلی:/usr/sbin/debootstrap --variant=minbase --include=vim trixie \
/mnt http://deb.debian.org/debian/این دو خط در واقع یک دستور واحد هستند.
اگر بخواهی در یک خط بنویسی (بدون \)، باید دقیقاً همینطور باشد:
/usr/sbin/debootstrap --variant=minbase --include=vim trixie /mnt http://deb.debian.org/debian/هم این فرم یکخطی درست است
هم فرم دوخطی با \ (که فقط برای خوانایی بیشتر استفاده میشود)
-
درباره نبود فایلهای vmlinuz و initrd.img
در خروجی فعلی /mnt این دو فایل هنوز وجود ندارند، چون debootstrap فقط سیستم پایه را نصب کرده (بدون کرنل).
اینا بعد از ورود به chroot و اجرای دستور شبیه به این ساخته میشن - دقیقش رو سرچ کنید:
apt install linux-image-amd64در مورد وارد شدن به محیط chroot هم فایل نمونه ای که آقای سعیدنژاد همینجا قرار داد میتونه مثال خوبی باشه ولی برای ستاپ شما دقیق نمیدونم .
- - -
دربارهی گزینهی --arch
بله دقیقاً همینطور است.
با --arch میتونی مشخص کنی برای چه معماری (CPU Architecture) سیستم ساخته شود.
# برای سیستمهای ۶۴ بیتی (معمولی)
--arch=amd64
# برای سیستمهای ۳۲ بیتی قدیمی
--arch=i386
# برای سیستمهای مبتنی بر ARM (مثل رزبریپای)
--arch=armhf # 32-bit ARM
--arch=arm64 # 64-bit ARM- - -
آیا سازندگان توزیعهای مشتقشده از Debian (مثل Ubuntu، Mint، و...) از debootstrap استفاده میکنند؟
بله، تقریباً همهی آنها در مراحل اولیهٔ build از debootstrap یا ابزار مشابهش استفاده میکنند.
اما بعد از آن مرحله، معمولاً یک سیستم ساخت بزرگتر دارند که تنظیمات، بستهها و ظاهر را اضافه میکند.
- - -
-
با تشکر مجدد از آقای Chappie بخاطر تمام محبت هایشان.
علامت \ در انتهای خط در شل (bash) یعنی:
«این دستور هنوز تمام نشده، ادامهاش در خط بعد است.»
در مثال اصلی:/usr/sbin/debootstrap --variant=minbase --include=vim trixie \
/mnt http://deb.debian.org/debian/
سر در نمی آورم،
اگر بخواهم در ترمینال از این روش استفاده کنم، بعد از نوشتن اولین دستور در ترمینال چکار کنم؟ اینتر بزنم؟ اگر اینتر را بزنم که این دستور اجرا می شود و اگر بخواهم دستور دوم را بعدا بنویسم خطا می دهد!!
-
اجراء چند دستور پشت سرهم
touch; ls
ادامه دادن یک دستور در چند خط
touch file1 \
file2
-
با تشکر از آقایان نوروزی و بریتانیای کبیر عزیز.
این اسکریپت رو دانلود کنید و اجرا کنید .
اسکریپت رو هم بخونید واضح میشه براتون
زمانی که یک خط در ترمینال خیلی طولانی و ناخوانا میشه از این راه استفاده میکنند .
در فایلهای کانفیگ هم دیدم که استفاده میشه .
-
اگر در ترمینال بنویسی:
/usr/sbin/debootstrap --variant=minbase --include=vim trixie \
و بعد Enter بزنی، Bash به تو < نشان میدهد و منتظر ادامه میماند.
حالا خط بعدی را بنویس:
/mnt https://deb.debian.org/debian/و بعد Enter بزن.
Bash این دو خط را بهصورت زیر درک میکند:
/usr/sbin/debootstrap --variant=minbase --include=vim trixie /mnt https://deb.debian.org/debian/
و آنوقت همان موقع اجرا میشود.
-
درست در نمی آید چون عکس 1
-
نکتهٔ خیلی مهم
احتمالا بعد از \ شما یا tab زدید یا کلید space رو زدید
یعنی این اشتباهه :
echo hello \ # <== اشتباه! چون بعد از \ فاصله هست
worldباید دقیقاً \ آخرین کاراکتر خط باشه.
در غیر این صورت Bash فکر میکنه دستور تموم شده و بعدی جداست.
-
درست شد.خیلی ممنون.
-
این موضوع هدفش چیه؟
معرفی یا آموزش؟ بهتره اگه مورد دوم باشه در ویکی بذاریدش و البته خیلی نظم بیشتری داشته باشه
-
این موضوع هدفش چیه؟
معرفی یا آموزش؟ بهتره اگه مورد دوم باشه در ویکی بذاریدش و البته خیلی نظم بیشتری داشته باشه
ممنون آقای بریتانیای کبیر بخاطر وقتی که برای انجمن و دوستان می گذارید.
نصب دبیان بهصورت Debootstrap را بلد نیستم، می خواهم با کمک دوستان یاد بگیرم.به تنهایی از عهده اش برنمی آیم.
این نوع نصب از لحاظ اینکه تا حد امکان در دست خودم باشد که در سیستم دبیانم چه بسته ای نصب باشد و چه بسته ای نصب نباشد برایم ارزشمند است.
تا حالا در این انجمن به کمک دوستان یاد گرفته ام که کدام display manager ، کدام میزکار یا windows manager را که دوست دارم به سلیقه خودم در سیستمم نصب کنم ولی تاکنون به طریق صحیح در دبیان یاد نگرفته ام که چگونه init مورد علاقه ام در دبیان را تغییر بدهم.
می دانم که init پیشفرض در دبیان systemd است که این را نمی پسندم و نمی خواهم در موردش بحث کنم و این تنها یک نظر شخصی است و بس.
دوست دارم init های مختلف را یکی بعد از دیگری بغییر از systemd در سیستمم امتحان کنم.
یکی از آرزوهای قلبی و همیشگی ام این بوده که دبیانی داشته باشم بدون systemd ، که خودم توانسته باشم از خود دبیان بسازم.
همچنین اگر امکان داشته باشد در مورد اینکه چه کسی می تواند در ویکی مطلب بگذارد یا مطالب قبلی را ویرایش کند، بیشتر توضیح دهید. هیچگونه اطلاعی در این مورد ندارم.
چگونه می توان در ویکی مطلب گذاشت و شرایط اینکار چیست؟ ممنون می شوم اگر اطلاعی در این مورد دارید برای من بیشتر توضیح بدهید.
-
Debian Debootstrap Install (AKA Installing Debian "the Arch way")
منظور از (AKA Installing Debian "the Arch way") چیست؟
آیا نصب دبیان بهصورت Debootstrap روش های متعددی دارد؟ می توانید تعدادی از این روشها را نام ببرید؟
-
مرحله 8 )
ببینید فایل mnt/etc/fstab/ در مرحله 7 با دستور debootstrap ایجاد شده است ولی محتوایی ندارد و داخلش خالیست. عکس 1
و این نیست که بخواهیم این فایل را با دستوری که در پایین می زنیم ایجاد کنیم،یعنی از قبل این فایل هست.
در حقیقت با دستور پایینی محتوای این فایل نوشته می شود. عکس های 2 و 3
من هیچ چیزی در درون این فایل ننوشته ام و با فرمان زیر بهصورت اتوماتیک وار پر می شود:
# genfstab -U /mnt >> /mnt/etc/fstab
-
مرحله 9 )
عکس 1 : mnt/etc/apt/sources.list/
عکس 2 : etc/apt/sources.list/
یعنی عکس 1 فایل mnt/etc/apt/sources.list/ را نشان می دهد که توسط فرمان Deboostrap در مرحله 7 ایجاد گردیده است.
عکس 2 فایل etc/apt/sources.list/ را نشان می دهد که مال خود دبیان لایو است.
می خواهم بگویم که محتوای فایل mnt/etc/apt/sources.list/ برای دبیانی که می خواهیم بسازیم کامل و مطلوب نیست.
محتوای فایل etc/apt/sources.list/ هم کامل نیست که بخواهیم از آن کپی بگیریم و کپی آن را بزنیم به فایل mnt/etc/apt/sources.list/
سری می زنیم به سایت خود دبیان:
https://debiansupport.com/mirrors/ (https://debiansupport.com/mirrors/)
محتوای اصلی:
deb https://deb.debian.org/debian trixie main
deb https://deb.debian.org/debian-security trixie-security main
deb https://deb.debian.org/debian/ trixie-updates main
محتوای ترجیحی من:
deb https://deb.debian.org/debian trixie main contrib non-free-firmware non-free
deb https://deb.debian.org/debian-security trixie-security main contrib non-free-firmware non-free
deb https://deb.debian.org/debian/ trixie-updates main contrib non-free-firmware non-free
محتوای فایل mnt/etc/apt/sources.list/ را به یکی از محتواهای بالایی تغییر دهید.
-
Debian Debootstrap Install (AKA Installing Debian "the Arch way")
منظور از (AKA Installing Debian "the Arch way") چیست؟
آیا نصب دبیان بهصورت Debootstrap روش های متعددی دارد؟ می توانید تعدادی از این روشها را نام ببرید؟
توزیع آرچ لینوکس به همین روش نصب میشه. AKA میشه مخفف also known as. در فارسی میتونیم بگیم «به عبارت دیگر».
یعنی داره میگه با این روش داری دبیان رو شبیه آرچ نصب میکنی.
-
نصب دبیان بهصورت Debootstrap را بلد نیستم، می خواهم با کمک دوستان یاد بگیرم.به تنهایی از عهده اش برنمی آیم.
پس بهتره از حالت نصب Expert برید که انعطاف پذیری زیادی داره یا از دویان استفاده کنید
-
با تشکر از آقای آرمان اسماعیلی بخاطر جواب عالی اتان.
-
تکمیل مرحله 9 )
در رابطه با اینکه به چه نحوی منابع جدید را به mnt/etc/apt/sources.list/ اضافه نماییم، می خواستم کمی بیشتر صحبت کنم.
بهترین روش از نظر سایت دبیان:
Using a text editor
The main APT sources configuration file is /etc/apt/sources.list.d/debian.sources, but if you add a new source, it's best to add a new file. Put it in the same directory, preferably with a name that describes the source and ends with .sources (e.g. /etc/apt/sources.list.d/neurodebian.sources for NeuroDebian).
https://wiki.debian.org/SourcesList (https://wiki.debian.org/SourcesList)
ولی راستش دقیقا نمی دانم منظور از محتوای بالا تنها اشاره به third-party repository ها دارد یا اینکه می گوید برای هر تغییری که انجام گیرد حتی مثلا برای افزودن contrib هم از این روش استفاده کنید.
روش فرعی:
می توانیم از ویرایشگرهای CLI مانند nano یا vim استفاده کنیم و مستقیماً فایل mnt/etc/apt/sources.list/ را ویرایش کنیم.
روشی فرعی دیگر:
ولی من روشی که آقای رسول سعیدنژاد در PDF آموزشی اشان گفته بودند، جالبتر و بامزه تر یافتم و می خواهم از همین روش در اینجا استفاده کنم.
ایشان در اینجا بهجای بهکارگیری ویرایشگرهای CLI ، از دستور echo استفاده کرده است.
اگر به عکس 1 در قسمت مورد نظرمان از فایل PDF آقای سعیدنژاد نگاه کنیم، از علامت < و << هم استفاده کرده اند. هر چند که من برنامه نویس نیستم، ولی با آزمایش خطا پی بردم که اگر از علامت < استفاده کنیم، کلیه محتوای قبلی فایل را پاک و محتوای جدید را جایگزین آن میکند.
ولی همانطور که می بینید ایشان این علامت را منحصرا در فرمان اولی بکار برده است ولی در دو فرمان بعدی بهجای < از علامت << استفاده کرده است. در این حالت << محتوای قبلی فایل پاک نمی گردد و محتوای جدید در سطر جدید درج می گردد یعنی محتوای قبلی حفظ و محتوای جدید در سطر جدید به فایل اضافه می گردد.
پس با استفاده از روش ایشان اینطوری محتوای مورد نظرم را به فایل mnt/etc/apt/sources.list/ اضافه می کنم: عکس 2 و 3
# echo deb https://deb.debian.org/debian trixie main contrib non-free-firmware non-free > /mnt/etc/apt/sources.list
# echo deb https://deb.debian.org/debian-security trixie-security main contrib non-free-firmware non-free >> /mnt/etc/apt/sources.list
# echo deb https://deb.debian.org/debian/ trixie-updates main contrib non-free-firmware non-free >> /mnt/etc/apt/sources.list
نوشتجات خط فرمان طولانی شد و مجبور شدم برای عکس گرفتن سایز فونت ها را کوچکتر کنم، درست الان به یاد گفته آقای Chappie در رابطه با \ یا همان بک اسلش می افتم و منظورشان را دقیق تر می فهم .
بنابراین در اینجا می خواهم از \ یا همان بک اسلش استفاده کنم، بههرحال نتیجه این دستورات با دستورات بالایی یکی است: عکس 4
# echo deb https://deb.debian.org/debian trixie main contrib \
# non-free-firmware non-free > /mnt/etc/apt/sources.list
# echo deb https://deb.debian.org/debian-security trixie-security main contrib \
# non-free-firmware non-free >> /mnt/etc/apt/sources.list
# echo deb https://deb.debian.org/debian/ trixie-updates main contrib \
# non-free-firmware non-free >> /mnt/etc/apt/sources.list
-
If you’re planning on using ifupdown as your networking tool, and you’re doing this from a system which uses it, copy the interfaces file to the chroot.
# cp /etc/network/interfaces /mnt/etc/network/interfaces
Do the same for the /etc/network/interfaces.d/ directory if it contains any files.
در اجرای این فرمان :
# cp /etc/network/interfaces /mnt/etc/network/interfaces
دچار مشکل شدم. عکس 1
همانطور که در عکس 2 می بینید، پوشه etc/network/ دارم.
ولی در عکس 3 همانطور که می بینید،پوشه mnt/etc/network/ ندارم.
فعلاً نمی دانم چکار کنم.
-
بهترین روش از نظر سایت دبیان:
نقلقول
Using a text editor
The main APT sources configuration file is /etc/apt/sources.list.d/debian.sources, but if you add a new source, it's best to add a new file. Put it in the same directory, preferably with a name that describes the source and ends with .sources (e.g. /etc/apt/sources.list.d/neurodebian.sources for NeuroDebian).
https://wiki.debian.org/SourcesList
ولی راستش دقیقا نمی دانم منظور از محتوای بالا تنها اشاره به third-party repository ها دارد یا اینکه می گوید برای هر تغییری که انجام گیرد حتی مثلا برای افزودن contrib هم از این روش استفاده کنید.
از دبیان ۱۳ به بعد یک تغیراتی در مخازن اعمال شده که میتونید در زیر نمونه اش رو ببینید
ولی sources.list هنوز برای سازگاری کار میکنه و به این روشی که انجام دادید برای سازگاری با اسکریپت های قدیمی هنوز کار میکنه
nano /etc/apt/sources.list.d/debian.sources
Types: deb deb-src
URIs: mirror+file:///etc/apt/mirrors/debian.list
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb deb-src
URIs: mirror+file:///etc/apt/mirrors/debian-security.list
Suites: trixie-security
Components: main contrib non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
nano /etc/apt/mirrors/debian.list
https://deb.debian.org/debian
-
برای امتحان Debootstrap آموزش خوبی رو پیدا نکردید , از خیلی از مراحل میپره و توضیح چندانی نمیده , بگردید و یک آموزش جامع پیدا کنید , متاسفانه اینجا کسی نیست که در حال نصب دبیان به این شکل باشه و دوستان نمیتونند کمک چندانی کنند .
برای نمونه در بخش NetworkManager که به مشکل خوردید , میتونید این چند لینک رو نگاهی کنید و ببینید بدردتون میخوره یا نه , در ضمن این لینکها هم قدیمی هستند لطفا کپی پیست نکنید هر چیزی رو .
https://www.linuxquestions.org/questions/debian-26/how-to-install-debian-using-debootstrap-4175465295/page5.html
https://gist.github.com/linzheming/205752af251ef2160fcfa2ee51a83287
https://gist.github.com/varqox/42e213b6b2dde2b636ef
https://gist.github.com/varqox/42e213b6b2dde2b636ef#configure-networking
-
از دبیان ۱۳ به بعد یک تغیراتی در مخازن اعمال شده که میتونید در زیر نمونه اش رو ببینید
برای نمایش مخازن از سبک deb822 استفاده میشه.
میتونید با دستور زیر مخازنتونو به سبک جدید نشون بدبد. میتونید با کلید جهش (tab) مسیر پروندهی مخازنن رو پر کنید
apt modernize-sources source_list_pathhttps://wiki.ubuntu-ir.org/wiki/%D8%A7%D8%B1%D8%AA%D9%82%D8%A7%DB%8C_%D8%AF%D8%A8%DB%8C%D8%A7%D9%86
-
با تشکر مجدد از آقایان Chappie و بریتانیای کبیر.
مرحله 10 )
اکنون زمان آن رسیده است که به سیستم deboostrap شده chroot کنیم: عکس 1
# arch-chroot /mnt
سپس، برای اطمینان بیشتر، دستور apt update را اجرا کنید: عکس 2
# apt update
مرحله 11 )
الان init را نصب می کنیم. فعلاً بهعلت سازگاری بیشتر دبیان از systemd استفاده می کنم: عکس 3
# apt install systemd systemd-sysv libpam-systemd libsystemd0
الان همkernel را نصب می کنیم: عکس 4 و 5
# apt install linux-image-amd64
-
مرحله 12 )
تنظیم منطقه زمانی: عکس 1
# dpkg-reconfigure tzdata
مرحله 13 )
الان رسیدیم بهNetworking ،
در آموزش نامه ای که من پی میگیرم از این روش استفاده شده است:
# apt install ifupdown wpasupplicant
ولی من ترجیح می دهم ازاین روش استفاده کنم: عکس های 2 و 3
# apt install network-manager
If you’re planning on using ifupdown as your networking tool, and you’re doing this from a system which uses it, copy the interfaces file to the chroot.
# cp /etc/network/interfaces /mnt/etc/network/interfaces
Do the same for the /etc/network/interfaces.d/ directory if it contains any files.
در اجرای این فرمان :
# cp /etc/network/interfaces /mnt/etc/network/interfaces
دچار مشکل شدم. عکس 1
همانطور که در عکس 2 می بینید، پوشه etc/network/ دارم.
ولی در عکس 3 همانطور که می بینید،پوشه mnt/etc/network/ ندارم.
فعلاً نمی دانم چکار کنم.
بنظرم علت اینکه من پوشه mnt/etc/network/ را در آن مرحله نداشتم ، این بوده است که در آن آموزش نامه نویسنده مطلب بایستی توجه می کرد وقتی که با استفاده از آپشن variant=minbase سیستم را بصورت مینیمال نصب کرده است، بنابراین نصاب دبیان Debootstrap ،بسته network-manager را نصب نمی کند . بنابراین طبیعتا پوشه ای بنام network و همچنین در درون این پوشه فایلی بنام interfaces راهم نخواهیم داشت.
بنابراین برای اینکه من پوشه mnt/etc/network داشته باشم ابتدا بایستی به سیستم دبیان Debootstrap ای که می خواهیم بسازیم chroot کنیم و سپس بسته network-manger را نصب کنیم و سپس اگر خواستیم این دستور را اجرا کنیم، بایستی حتما ابتدا از محیط chroot، خارج بشویم با فرمان exit و سپس فرمان زیر را اگر خواستیم اجرا کنیم:
# cp /etc/network/interfaces /mnt/etc/network/interfaces
عکس های 4 و 5
-
مرحله 14 )
در این مرحله یک نام میزبان برای سیستم خود انتخاب کنید و آن را به etc/hostname/ اضافه کنید: عکس 1
echo "yourhostname" > /etc/hostname
مرحله 15 )
ویرایش فایل etc/hosts/ :
در اینجا می خواهیم محتوای فایل etc/hosts/ را با کمی تغییر کپی کنیم به mnt/etc/hosts/ ، فقط یادتان باشد نام "yourhostname"
که تنظیم کرده اید در محل معین در آن قرار دهید.
روش اول:
در همان محیط chroot از دستور echo استفاده کنید: عکس 2 و 3
# echo "127.0.0.1 localhost yourhostname" > /etc/hosts
# echo "::1 localhost ip6-localhost ip6-loopback" >> /etc/hosts
# echo "fe00::0 ip6-localnet" >> /etc/hosts
# echo "ff00::0 ip6-mcastprefix" >> /etc/hosts
# echo "ff02::1 ip6-allnodes" >> /etc/hosts
# echo "ff02::2 ip6-allrouters" >> /etc/hosts
روش دوم:
و یا اینکه از chroot خارج شوید و ابتدا فایل mnt/etc/hosts/ را حذف کنید و سپس فایل etc/hosts/ را به mnt/etc/ کپی کرده و سپس مثلا با نرم افزار vim ، نام "yourhostname"
که تنظیم کرده اید در محل معین در آن تغییر دهید. و در نهایت برای ادامه کار دوباره به محیط chroot برگردید.
-
بنظرم بعد از تمام شدن کار ویکیش کنید.
-
مرحله 16 )
Install the locales package, then configure
# apt install locales
# dpkg-reconfigure locales
در اینجا می خواهیم بسته locales را نصب کنیم، سپس پیکربندی کنیم. عکس 1 و 2
برای نصب:
# apt install locales
دستوری که نشان می دهد که زبان سیستم دبیان شما بر روی چه زبانی تنظیم شده است:عکس 5
# env | grep LANG
باپیکربندی این گزینه زبان سیستم دبیان خود را تغییر می دهید: عکس 3 و 4
# dpkg-reconfigure locales یادتان بماند در هنگام اجرای دستور dpkg-reconfigure locales ، با دیدن کلمه [More ] ، کلید اینتر را بزنید تا ادامه بیشتری برای شما نشان داده شود.
در قسمتLocales to be generated مثلاً عدد 126 را وارد کنید و سپس اینتر را بزنید تا fa_IR UTF-8 اعمال شود. در هنگام پرسیدن :Dault locale for the system environment ، عدد 3 را تایپ کرده و سپس اینتر بزنید. در اینجا گزینه 3 همان fa_IR است.
اگر دوباره دستور env | grep LANG را اجرا کنید، خواهید دید که بر روی همان انگلیسی پیشفرض تنظیم شده است و به فارسی تغییر نیافته است، علت این است که برای اینکه این تغییر اعمال شود لازم است که سیستم ریستارت شود، ولی ما فعلاً با سیستممان کار داریم و نمی خواهیم اینکار را انجام دهیم.
اگر زبان سیستم را فارسی انتخاب کنید، مثلاً تقویم به فارسی نشان داده می شود و برخی از نرم افزارها مانند Disks و PcmanFM و Geany و... منوهایشان و ... بهصورت فارسی نشان داده می شود که البته خیلی وقت پیش امتحان کرده بودم در آنموقع تکمیل نبود و پشتیبانی مناسبی از زبان فارسی نداشت.
من شخصاً ترجیحم استفاده از همان زبان انگلیسی پیشفرض برای سیستم دبیان می باشد.
-
مرحله 17 )
Configure the keyboard if you're not going to use the default 'us' keymap:
# apt install console-setup
# dpkg-reconfigure keyboard-configuration
You may not want to run dpkg-reconfigure keyboard-configuration. I find it more trouble than it’s worth and it seems to me like it is not required, though it’s mentioned in most guides.
Certain changes to the keymap will only take effect once rebooted into the new install.
پیکربندی صفحه کلید:
ابتدا با این فرمان console-setup را نصب نمایید:
# apt install console-setup
سپس برای پیکره بندی: عکس های 1 و 2 و 3 و 4 و 5
# dpkg-reconfigure keyboard-configurationبا دیدن [More] اینتر بزنید تا مقادیر بیشتری برای شما نشان داده شود.
با دیدن :keyboard layout ، عدد 30 که به معنای Other را وارد کنید و سپس اینتر را بزنید، بعد دوباره با دیدن [More] برای نشان دادن محتوای بیشتر اینتر بزنید.
بعد با دیدن :Country of origin for the keyboard عدد 74 که همان Persian است را نوشته و اینتر را بزنید.
با دیدن Keyboard layout ، عدد 1 که همان Persian را تایپ کرده و سپس اینتر را بزنید.
با دیدن :Method for toggling between national and Latin mode
مثلاً عدد 7 که همان میانبر Alt+Shift برای تغییر زبان صفحه کلید است را وارد کرده و سپس اینتر را بزنید.
-
مرحله 18 )
Users, passwords and authentication
Start by creating a password for the root account. You can lock the account later if you don't plan on using it with the passwd -l root command.
# passwd
Setting up your default user:
# useradd -m username
# passwd username
Add the user to necessary groups, and give it the proper interactive shell. Debian uses bash as its default interactive shell, but you can choose whatever you like.
# usermod -aG cdrom,floppy,audio,dip,video,plugdev,netdev username
# usermod -s /bin/bash username
کاربران، رمزهای عبور و احراز هویت
# passwd
# useradd -m username
# passwd username
# usermod -aG cdrom,floppy,audio,dip,video,plugdev,netdev username
# usermod -s /bin/bash username
عکس 1
Next, 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, though I personally prefer doas.
For doas:
# apt install opendoas
# echo "permit username" > /etc/doas.conf
For sudo:
# apt install sudo
# usermod -aG sudo username
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.
apt install sudo
usermod -aG sudo username
cat /etc/sudoers
دبیان یک فایل sudoers از پیش پیکربندی شده ارائه میدهد و احتمالاً نیازی به تغییر چیزی ندارید، اما بهتر است که مطمئن شوید خط زیر «allow members of group sudo …” با دستور cat /etc/sudoers به صورت کامنت درنیامده باشد.
عکس های 2 و 3 و 4
-
مرحله 19 )
Setting up the bootloader
Here, grub is used. For other bootloaders, see their own documentation.
For EFI systems
# apt install grub-efi-amd64
# grub-install --target=x86_64-efi --efi-directory=/boot/efi
# update-grub
For bios/legacy systems
# apt install grub-pc
# grub-install /dev/sdX
# update-grub
تنظیم بوت لودر:
در اینجا من از grub استفاده کرده ام. برای سایر بوت لودرها، به مستندات مربوط به خودشان مراجعه کنید.
سیستم من چون EFI systems است بنابراین از این دستورات استفاده کردم:
# apt install grub-efi-amd64
# grub-install --target=x86_64-efi --efi-directory=/boot/efi
# update-grub
عکس های 1 و 2 و 3
-
مرحله 20 یا نهایی )
Finalizing
Run apt clean for good measure.
Remove resolv.conf so it gets recreated at boot: rm /etc/resolv.conf
Exit the chroot with the exit command.
Unmount the filesystems with umount just to be extra safe. Hint: unmount the devices mounted to /boot/efi and /home first before running umount /dev/sdX.
That's it. Reboot and enjoy.
در پایان نصب دبیان بصورت Debootstrap این کارها را می کنیم:
# apt cleanعکس 1
Remove resolv.conf so it gets recreated at boot: rm /etc/resolv.conf
همانطور که در عکس 2 می توانید مشاهده کنید، در این دستور العملی که من استفاده می کنم این دستور در جای نامناسبی داده شده است و خطا می دهد، برای حل این مشکل ابتدا با دستور :
# exit
از chroot خارج می شویم و سپس از دستور زیر برای حذف فایل مربوطه اقدام می کنیم:
# rm /mnt//etc/resolv.confعکس 2
Exit the chroot with the exit command.
اجرای این دستور exit در اینجا دیگر لازم نیست، چون در دستورات قبلی ما از محیط chroot با فرمان exit خارج شدیم.
برای امنیت بیشتر، فایلسیستمها را با umount از حالت mount خارج می کنیم.
نکته: قبل از اجرای umount /dev/sda، ابتدا دستگاههایی را که در /boot/efi و /home نصب شدهاند، از حالت مانت خارج می کنیم، برای اینکار از دستورات زیر استفاده می کنیم:
# umount /dev/sda1
# umount /dev/sda4
# umount /dev/sda3
-
من دبیان را بهصورت Debootstrap و مینیمال با systemd از طریق دبیان لایو به سیستم اصلی ام نصب کردم.
حالا می خواهم بیایم و نگاه کنم و ببینم که اصلاً سیستمی که ایجاد کرده ام کار می کند؟ بوت می شود؟ و …
در اینجا به ترتیب ۵ عکس گذاشته ام.
عکس 1:
خوب خدا را شکر، گراب در همین ابتدا بعد از اعلان بایوس، قابل مشاهده است. پس می توانیم امیدوار باشیم که حداقل این یکی درست است تا برسیم به بقیه.
عکس 2:
بهبه ، اعلان دبیان هم آمد.
عکس 3:
تعدادی خطا مربوط به زمان بوت سیستم.
عکس 4:
ولی خطاهای بوت در آن حد نبودند، که مانع ورود ما به سیستم اصلی امان و خط فرمان شوند.در اینجا بعد از اعلان خطاها وارد خط فرمان دبیان می شویم.
بررسی خطاهای مربوط به عکس 3 :
در ایجا ما با دو نوع خطای متفاوت مواجه می شویم:
۱- خطای fsck.ext4 for dev/sda3
۲- خطاهای مربوط به نبودن firmware های مربوطه
حل خطای fsck.ext4 for dev/sda3 :
برای حل این خطا بسته e2fsprogs را نصب می کنیم.
بسته e2fsprogs : این بسته شامل برنامههایی برای ایجاد، بررسی و نگهداری سیستمهای فایل مبتنی بر ext2/3/4 است. همچنین شامل برنامه "badblocks" است که میتواند برای اسکن بلوکهای خراب روی دیسک یا سایر دستگاههای ذخیرهسازی استفاده شود.
فکر کنم بایستی نصب این بسته در قسمت chroot به آموزش نامه Ian LeCorbeau اضافه گردد.
حل خطای مربوط به نبودن firmware های مربوطه:
برای حل این خطا از این دستورها استفاده می کنم:
# apt update
# apt install firmware-linux
# reboot
# apt install firmware-realtek
# reboot
بسته firmware-linux ، این بسته به میانافزار آزاد و غیرآزاد وابسته است که ممکن است با درایورها در هسته لینوکس استفاده شوند. موردی ندارد این بسته را نصب نمایید.
بسته firmware-realtek ، این بسته شامل میانافزار باینری برای تراشههای اترنت، وایفای، بلوتوث و صدای Realtek است که توسط درایورهای مختلف پشتیبانی میشوند. چون سیستم من از مارک Realtek استفاده کرده، بنابراین بایستی این بسته را نصب کنم تا firmware های مربوط به سخت افزارش نصب شود، اگر در سیستم شما مارک دیگری است، این بسته را نصب نکنید و جستجو کرده و بسته مناسب با مارک تان را نصب نمایید.
حتماً بعد از نصب firmware از هر نوعی ، بایستی سیستمتان را reboot نمایید.
عکس 5 : بعد از بوت مجدد، عکس 5 این را به ما نشان می دهد، که مشکلات موجود در عکس 3 با نصب بسته هایی که در بالا توضیح دادم، حل گردیده است.
بنابراین می توان از سیستمی که از طریق Debootstrap نصب شده، استفاده برد.
-
من در ارسالی های قبلی، دبیان را بهصورت Debootstrap و بهصورت مینیمال و systemd نصب کردم و با رفع خطاها سیستم بدون مشکل کار کرد.
الان من می خواهم دبیان را بهصورت Debootstrap و بهصورت مینیمال و systemd free و بصورت sysvinit در سیستم اصلی ام نصب کنم. برای اینکار همه چیز را در سیستمم پاک کردم.
طبق آموزشی که من در پیش گرفته ام همه چیز مثل مراحل قبلی است، بجز اینکه بهجای بسته های مرتبط با systemd بایستی بسته های مرتبط با sysvinit را نصب نمایم.یعنی بدین صورت:
Installing init and the kernel
We need a kernel and init system. This could be done later but I prefer getting it out of the way first.
For systemd:
# apt instal systemd systemd-sysv libpam-systemd libsystemd0
For sysvinit:
# apt install sysvinit-core sysv-rc orphan-sysvinit-scripts elogind libpam-elogind
Install the kernel:
# apt install linux-image-amd64
Swap amd64 for another architecture if you need.
ولی اینجا یک مسله مهمی وجود دارد، اگر به عکس 1 نگاه کنید، می توانید ببینید که بسته linux-image-amd64 به بسته های:
systemd و systemd-cryptsetup و systemd-timesyncd و libsystemd-shared
وابسته است.
نمی دانم چکار کنم؟ آیا راهی بنظرتان می رسد که در دبیان از دست این بسته ها خلاص بشوم.
( امیدوارم که مرا بسویDevuan و antiX و توزیع های دیگر راهنمایی نکنید، نمی خواهم در این مورد بحث کنم)
لطفاً هر ایده ای که به ذهنتان می رسد، بگویید. رویش کار خواهم کرد.
-
۱ )
بستهی linux-image-amd64 در Debian وابستگی غیرمستقیم (indirect dependency) به systemd داره.
اما این وابستگی از نوع Recommends یا Suggests است، نه همیشه "Depends".
توضیح:
Depends: یعنی بدونش پکیج کار نمیکنه.
Recommends: یعنی نصبش مفیده ولی اجباری نیست.
Suggests: یعنی صرفاً پیشنهاده.
مشکل اینه که apt بهطور پیشفرض Recommendsها رو هم نصب میکنه.
در نتیجه systemd همراه کرنل میاد حتی اگه لازم نباشه.
۲ )
به عنوان ایده :
بعد از اینکه وارد chroot شدی :
apt install sysvinit-core sysv-rc orphan-sysvinit-scripts elogind libpam-elogindجلوگیری از نصب مجدد systemd :
apt-mark hold systemd systemd-sysv libpam-systemd
برای اطمینان بیشتر، این فایل هم بساز:
cat > /etc/apt/preferences.d/nosystemd << "EOF"
Package: systemd*
Pin: release *
Pin-Priority: -1
EOFالان میتونی با خیال راحت کرنل کامل نصب کنی چون systemd قفل شده:
apt install linux-image-amd64
و بعد ادامه راهی که میرفتید ...
-
اون فایلی که ساختیم چکار میکنه :
apt چطور تصمیم میگیرد چه چیزی نصب شود؟
وقتی در دبیان (یا هر توزیع مبتنی بر آن) دستور apt install را اجرا میکنی، apt باید بین چند نسخه یا مخزن تصمیم بگیرد که کدام بسته را نصب کند.
برای این کار از چیزی به نام APT pinning system استفاده میکند.
هر بسته یک اولویت (priority) دارد که با عدد Pin-Priority مشخص میشود.
- - -
فایل /etc/apt/preferences.d/nosystemd چیست؟
فایلی است که به apt میگوید:
«اگر اسم بسته با systemd شروع میشود، حتی اگر لازم بود، نصبش نکن.»
- - -
Package: systemd*
هر بستهای که نامش با systemd شروع شود (مثلاً systemd, systemd-sysv, systemd-timesyncd, libpam-systemd …)
Pin: release *
از هر مخزنی باشد، فرقی ندارد (deb, updates, security … همه را شامل شود)
Pin-Priority: -1
نمرهی اولویت منفی → یعنی «هرگز نصب نکن»
-
برای نصب نرمافزارها با apt میتونید از فلگ no install recommend استفاده کنید تا بسته اضافی نصب نشود.
بهتره هر مرحلهها به شکل جدا در یک shell script قرار دهید و گامها را به هم متصل کنید. به این شکل نگهداری پروژه سادهتر میشه.
-
ممنون آقای esmaeelE ، دوست عزیز.
برای نصب نرمافزارها با apt میتونید از فلگ no install recommend استفاده کنید تا بسته اضافی نصب نشود.
اگر بخواهیم این روش را بررسی کنیم.
حالت اول:
apt install linux-image-amd64
Installing dependencies:
apparmor dbus-session-bus-common initramfs-tools-core libdevmapper1.02.1 linux-base systemd-timesyncd
busybox dbus-system-bus-common klibc-utils libexpat1 linux-image-6.12.48+deb13-amd64 udev
cpio dmsetup kmod libjson-c5 linux-sysctl-defaults zstd
dbus dracut-install libapparmor1 libklibc logsave
dbus-bin initramfs-tools libcryptsetup12 libkmod2 systemd
dbus-daemon initramfs-tools-bin libdbus-1-3 libsystemd-shared systemd-cryptsetup
حالت دوم:
apt install --no-install-recommends linux-image-amd64Installing dependencies:
cpio initramfs-tools-bin kmod libkmod2 linux-image-6.12.48+deb13-amd64 udev
dracut-install initramfs-tools-core libapparmor1 libsystemd-shared logsave
initramfs-tools klibc-utils libklibc linux-base systemd
اگر تمرکزمان را فقط بر روی بسته های مربوط به systemd بگذاریم، در حالتی که از no-install-recommends-- استفاده می کنیم،
بسته های libsystemd-shared و systemd نصب می شوند ولی بسته های systemd-timesyncd و systemd-cryptsetup نصب نمی شوند.
در حالت اول که از no-install-recommends-- استفاده نمی کنیم، هر چهار تای این بسته ها نصب می شوند.
برای بکارگیری این روش برایم دو تا مشکل وجود دارد:
۱- من با Installing dependencies و Recommends مشکلی ندارم و حتی ضروری می دانم که آنها نصب بشوند ولی تا حد امکان می خواهم نگذارم بسته های مرتبط با sysytemd نصب شوند. با بکارگیری این روش بایستی بعد بیایم و دوباره بسته هایی مانند:
apparmor و busybox و dbus و dmsetup و zstd و غیره را نصب کنم.
۲-با بکارگیری این روش همچنانکه گفتم بسته های libsystemd-shared و systemd باز هم نصب می شوند.
بهتره هر مرحلهها به شکل جدا در یک shell script قرار دهید و گامها را به هم متصل کنید. به این شکل نگهداری پروژه سادهتر میشه.
متاسفانه در این زمینه اطلاعاتم در حد صفر است.
-
برای کاربرد خاص شما در نصب debootstrap بررسی نکردم ولی دو گزینه apt دارد که احتمالا در این مورد مفید باشند.
apt mark hold و دیگری apt pin
این دو را ترکیب کنید و از نصب بستهها جلوگیری کنید.
https://unix.stackexchange.com/a/316745/235261
https://dev1galaxy.org/viewtopic.php?pid=49005#p49005
-
ممنون دوست عزیز آقای Chappie ، اگر کمک های شما نبود فکر می کنم تا این مرحله نمی رسیدم.
سوال۱:
چرا در قسمت hold ، بسته libsystemd-shared را جزو آنها قرار نداده بودید؟
راستش من روش شما را رفتم و خیلی هم لذت بردم، برای اینکه پیاز داغش را زیادتر کنم بسته libsystemd-shared را هم جزو hold شدگان قرار دادم، دیگر در نصب linux-image-amd64 هیچگونه آثاری از بسته های systemd نبود، در اینجا خیلی کیف کردم و ادامه نصب را بدون مشکل به جلو رفتم، سیستم هم بدون مشکل خاصی بوت شد ولی بعد مشکلات آغاز شد حتی دستور apt update هم در خط فرمان جواب نمی داد و به سایت دبیان وصل نمی شد. مجبور شدم دوباره چیزی که نصب کرده بودم حذف کنم. شاید هم عجله کردم و با نصب چند بسته مشکل برطرف می شد.
دقیقا سوال اساسی من این است:
آیا بسته libsystemd-shared یکی از سنگ بنا و ستون اساسی دبیان است؟ آیا بدون این بسته اوضاع تا حد غیر ممکن بغرنج می شود؟
فعلا تمرکز اساسی ام را بر روی روش شما گذاشته ام، ولی این بسته libsystemd-shared برایم حسابی اوضاع شده، آیا روش جایگزینی وجود دارد که بجای کارکرد این بسته برایم کار کند؟
سوال دیگر:
اگر بخواهیم بعدا بسته ای را از حالت hold خارج کنیم از چه دستوری باید استفاده کنیم؟
-
libsystemd-shared
کتابخانهٔ runtime داخلی systemd (مورد استفاده توسط خود systemd و برخی ابزارهای پایه مثل udev, dbus, policykit, apt بهطور غیرمستقیم)
- - -
چرا نباید libsystemd-shared (یا libsystemd0) رو hold یا block کنی
چون خیلی از بستههای «غیر systemd» — حتی در حالت sysvinit — به کتابخانههای عمومی systemd نیاز دارن، نه daemon خودش.
برای مثال:
dbus-daemon, udisks2, apt-transport-https, policykit, elogind, udev
→ همگی به libsystemd0 یا libsystemd-shared لینک شدن.
این کتابخانهها Daemon نیستن، بلکه فقط کتابخانهٔ سطح پایین C هستن که برای سازگاری استفاده میشن.
یعنی حتی وقتی systemd حذف شده باشه، وجود این فایلهای .so برای عملکرد سایر سرویسها لازمه.
- - -
چه اتفاقی افتاد وقتی تو libsystemd-shared رو هم hold کردی
وقتی اون بسته رو hold کردی یا pin کردی،
apt نتونست libsystemd-shared.so رو آپدیت یا resolve کنه → در نتیجه dbus و apt و networking بعضاً از کار افتادن چون یکی از dependencyهای سطح پایینشون قفل شد.
نتیجه:
apt update نمیتونه بهدرستی gnutls و dbus و policykit رو لود کنه
بعضی از سرویسها که به این lib لینک شدن (حتی غیر systemd) crash یا hang میکنن
- - -
پیشنهاد دقیق برای hold
اگر بخوای یک setup تمیز و بیدردسر داشته باشی:
apt-mark hold systemd systemd-sysv libpam-systemd
و در /etc/apt/preferences.d/nosystemd فقط بنویس:
Package: systemd systemd-sysv libpam-systemd
Pin: release *
Pin-Priority: -1
نه بیشتر.
- - -
libsystemd-shared و libsystemd0 خودشون systemd نیستن،
فقط کتابخانههایی هستن که خیلی از بستهها برای کارکرد عمومیشون بهشون لینک شدن.
حذف یا hold کردنشون باعث اختلال در apt، dbus، udev، و network میشه.
- - -
دستور اصلی برای برداشتن حالت hold
sudo apt-mark unhold package_name
برای دیدن اینکه چه بستههایی در حالت hold هستن:
apt-mark showhold
-
libsystemd-shared و libsystemd0 خودشون systemd نیستن،
فقط کتابخانههایی هستن که خیلی از بستهها برای کارکرد عمومیشون بهشون لینک شدن.
This internal shared library provides common code used by various systemd
components. It is supposed to decrease memory and disk footprint.
The shared library is not meant for public use and is not API or ABI stable.
این کتابخانه مشترک داخلی، کد مشترکی را که توسط اجزای مختلف systemd استفاده میشود، ارائه میدهد. قرار است فضای اشغال شده توسط حافظه و دیسک را کاهش دهد. این کتابخانه مشترک برای استفاده عمومی در نظر گرفته نشده و از نظر API یا ABI پایدار نیست.
ببخشید ولی بنظرم این مطالب با هم جور درنمی آید. عکس 1
-
libsystemd-shared واقعاً بخشی از سورس systemd است.
در پروژهٔ اصلی systemd، فقط برای استفادهٔ داخلیِ خودِ systemd ساخته شده.
دبیان هنگام بستهبندی، systemd را به چند بسته جدا تقسیم میکند.
یکی از آن بستهها همین libsystemd-shared است که توسط udev و چند ابزار دیگر لازم است.
این کتابخانه daemon نیست و init سیستم را کنترل نمیکند.
اگر حذف شود، udev و بعضی برنامههای پایه از کار میافتند.
پس دبیان آن را نگه میدارد، حتی وقتی خود systemd حذف شده باشد.
نتیجه: وجودش به معنی «داشتن systemd» نیست؛ فقط یک وابستگی فنی است تا سیستم بدون systemd هم کار کند.
- - -
apt از کار افتاد نه چون خودش systemd میخواست،
بلکه چون تو کتابخانهای رو قفل کردی که udev و dbus بدونش بوت نمیشن —
و اونها زیرساخت ارتباطی apt با سیستم هستند.
- - -
libsystemd-shared در اصل بخشی از سورس systemd است و برای استفادهی داخلی خودِ systemd ساخته شده.
این کتابخانه فقط شامل کدهای مشترک بین اجزای systemd (مثل journald, logind, udev) است تا حجم حافظه و دیسک کمتر شود.
API و ABI این کتابخانه پایدار نیست، یعنی هر نسخه از systemd باید دقیقاً نسخهی خودش از libsystemd-shared را داشته باشد.
دبیان systemd را به چند بسته جدا تقسیم میکند تا حتی در حالت بدون systemd هم سیستم بوت شود.
در دبیان، udev از همان سورس systemd ساخته میشود و به libsystemd-shared وابسته است.
بنابراین حتی اگر systemd daemon حذف شود، libsystemd-shared باید بماند تا udev و دیگر اجزای پایه کار کنند.
libsystemd0 برعکس، کتابخانهی عمومی و پایدار است که بسیاری از برنامهها (مثل apt، dbus، cups، policykit) برای لاگ و اعلان به آن لینک شدهاند.
اگر libsystemd-shared را hold یا حذف کنی، نسخهی udev دیگر با آن match نمیکند و udev از کار میافتد.
وقتی udev یا dbus fail کنند، apt و خیلی از ابزارهای سیستمی هم نمیتوانند اجرا شوند.
نتیجه: systemd را میتوان حذف کرد، اما libsystemd-shared و libsystemd0 باید بمانند، چون بدون آنها کل زیرساخت سختافزار و ارتباطات درون سیستم از کار میافتد.
- - -
خلاصهی نهایی:
systemd را میتوان کاملاً حذف کرد،
اما کتابخانههای آن (libsystemd0 و libsystemd-shared) باید بمانند،
چون udev و دهها ابزار پایهی لینوکس برای اجرا به آنها لینک شدهاند.
حذف یا hold آنها باعث قطع عملکرد udev، dbus و در نتیجه apt میشود.
-
این لینکها رو هم ببینید شاید براتون نکته ای داشته باشه :
https://wiki.debian.org/Init#Changing_the_init_system_-_at_installation_time
https://nosystemd.org
-
آقای Chappie ، ممنون از همه مَحبت هایتان و بخاطر وقتی که می گذارید.
نتیجه: systemd را میتوان حذف کرد، اما libsystemd-shared و libsystemd0 باید بمانند، چون بدون آنها کل زیرساخت سختافزار و ارتباطات درون سیستم از کار میافتد.
- - -
خلاصهی نهایی:
systemd را میتوان کاملاً حذف کرد،
اما کتابخانههای آن (libsystemd0 و libsystemd-shared) باید بمانند،
چون udev و دهها ابزار پایهی لینوکس برای اجرا به آنها لینک شدهاند.
حذف یا hold آنها باعث قطع عملکرد udev، dbus و در نتیجه apt میشود.
با توجه به عکسهای 1 و 2 و 3 که از توزیع antiX گرفته ام، بنظر میرسد می توان در دبیان هم systemd و هم libsystemd-shared وهم libsystemd0 نصب نباشند و بدون آنها هم، سیستم از هم نپاشد و apt هم کار کند و بدون آنها لزوما کل زیرساخت سختافزار و ارتباطات درون سیستم از کار نخواهد افتاد.
با توجه به عکس 4 که از توزیع antiX گرفته ام، بنظر میرسد می توان در دبیان هم systemd و هم libsystemd-shared وهم libsystemd0 نصب نباشند و بدون آنها هم بسته dbus و بسته های زیر مجموعه آن کار کنند.
ولی با توجه به عکس 5 که از توزیع antiX گرفته ام،بنظر میرسد نمی توان در دبیانی که systemd و libsystemd-shared وlibsystemd0 نصب نباشند، بتوان از بسته های udev و libudev1 استفاده کرد.
با توجه به عکس 6 که از توزیع antiX گرفته ام،بنظر میرسد نمی توان در دبیانی که systemd و libsystemd-shared وlibsystemd0 نصب نباشند، بتوان از بسته network-manager استفاده کرد.
با توجه به عکس 7 و 8 که از توزیع antiX گرفته ام، بنظر می رسد در توزیع antiX آمده اند و بجای بسته network-manager از بسته های ifupdown و wpasupplicnt استفاده کرده اند.
متاسفانه و متاسفانه در درازمدت توزیع هایی مانند antiX مجبورند برای ادامه بقایشان حداقلی از systemd را در سیستمشان پذیرا باشند.
با تشکر مجدد از دوست خوبم آقای Chappie .
-
ادامه عکس ها.
-
ممنونم آقای نوروزی
- - -
سوالم اینه که تو دبیان چه نتیجه ای گرفتین و تجربه خودتون چی هست ؟
من توضیحاتی که دادم برای نصب رو دبیان بود نه antiX
antiX احتمالا هزارتا تغییرات داده رو سیستم تا تونسته به هدفش برسه
در لینکی که بالاتر از ویکی دبیان داده بودم فقط دو بسته hold شدند که با اون توضیحاتی که دادم همخوانی داره .
یه جستجوی کوچیک کردم مثل اینکه antiX برای اینکه وابستگی کمتری به systemd و هم کتابخانه های که که توضیح دادم داشته باشه خیلی از بسته های دبیان رو rebuild کرده .
- - -
توضیح شفافتری نمیتونم بدم چون سیستم در حال Debootstrap ندارم و هم در حال نصب به غیر از systemd نیستم .
- - -
یکی از تغییراتی که داده شده :
eudev یا mdev بهجای udev
https://antixlinuxfan.miraheze.org/wiki/AntiX_19_FAQ
-
برای دیدن اینکه چه بستههایی به این دو وابستهاند (Reverse Depends):
apt-cache rdepends libsystemd0
apt-cache rdepends libsystemd-sharedاینجا rdepends یعنی reverse depends — یعنی چه بستههایی برای کارکرد خودشون به این بستهها نیاز دارن.
نصف سیستم به libsystemd0 لینک داره.
خروجی در فایلهای ضمیمه:
-
آقای Chappie ،
من سیستم را طبق روالی که فرمودید و در عکس 1 می توانید مشاهده نمایید نصب کردم.
تشکر، سیستم بوت می شود و کار می کند.
در صورتیکه وقت داشتید، لطفا به عکس های 2 و 3 و 4 و 5 نگاه بفرمایید. که اگر نصبی که از این طریق انجام داده ام ایراد داشت آنرا برطرف نمایم.
-
عالی
عکس هارو هم دیدم چیز غیرعادی بنظرم وجود نداره معمولا هنگام بوت سیستم دیده میشه برای بعضی سیستمها .
شما فقط لطف کن چند مدت همینطوری از سیستم استفاده کنید و بعد از چند بروزرسانی که سیستم میده ببینید مشکلی با این مدل ستاپی که داشتید پیدا میکنید یا نه و در همین تاپیک مثلا چندماه بعد از تجربه اتون بگید و در نهایت میتونید این تجربه رو ویکی کنید که در آینده بقیه هم استفاده کنند .
- - -
🙏✋
-
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
-
با تشکر فراوان از:
Ian LeCorbeau
https://ianlecorbeau.com/blog/debian-debootstrap-install.html (https://ianlecorbeau.com/blog/debian-debootstrap-install.html)
و
آقای Chappie و آقای رسول سعیدنژاد و آقای آرمان اسماعیلی و آقای esmaeelE و آقای بریتانیای کبیر.
نمی دانم ارزش ویکی داشته باشد یا نه. من خودم علاقه ای به ویکی کردن ندارم. از دوستان اگر کسی علاقمند به این کار بود خوشحال می شوم. البته می تواند تغییرات دلخواهش را هم هر طوری که صلاح می داند، بدهد.
-
Debian Debootstrap Install (AKA Installing Debian "the Arch way")+ sysvinit+MATE Desktop
#########################Debian+Debootstrap+Install+sysvinit+MATE Desktop+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.#######
###########################################################################################################
#####I am installing the Mate desktop here, but you can install another desktop according to your taste.###
###########################################################################################################
#####I am installing the lightdm display manager here, but you can install another display manager#########
#####according to your taste.##############################################################################
###########################################################################################################
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 sysvinit-core sysv-rc orphan-sysvinit-scripts elogind libpam-elogind
root@debian:/# apt-mark hold systemd systemd-sysv libpam-systemd
root@debian:/# cat > /etc/apt/preferences.d/nosystemd << "EOF"
root@debian:/# Package: systemd systemd-sysv libpam-systemd
root@debian:/# Pin: release *
root@debian:/# Pin-Priority: -1
root@debian:/# EOF
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" > /etc/hosts
root@debian:/# echo "127.0.1.1 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 yourusemame
root@debian:/# usermod -aG cdrom,floppy,audio,dip,video,plugdev,netdev yourusername
root@debian:/# usermod -s /bin/bash yourusernamr
root@debian:/# apt install sudo
root@debian:/# usermod -aG sudo yourusername
root@debian:/# cat /etc/sudoers
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 install firmware-linux
root@debian:/# apt install mate-desktop-environment
root@debian:/# apt install mate-desktop-environment-extras
root@debian:/# apt install lightdm
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
-
با سلام مجدد،
من می خواستم بجای sysv کمی هم OpenRc را هم امتحان کنم و عملکرد آنرا هم ببینم. همانطور که در شکل 1 می بینید بسته sysv-rc را حذف کرده ام، جالب این است که بنظرم خودش بطور اتوماتیک بسته openrc را برایم نصب کرده است، ولی در عکس 2 از من خواسته کاری انجام دهم، ولی متوجه نمی شوم، اگر امکان داشته باشید، بفرمایید که من چه کاری بایستی انجام دهم:
*** WARNING: if you are replacing sysv-rc by OpenRC, then you must ***
*** reboot immediately using the following command: ***
for file in /etc/rc0.d/K*; do s=`basename $(readlink "$file")` ; /etc/init.d/$s stop; done
-
کاری که دستور داخل هشدار انجام میده:
for file in /etc/rc0.d/K*; do
s=`basename $(readlink "$file")`
/etc/init.d/$s stop
done
- - -
این یه حلقهٔ سادهی bash هست که:
تمام سرویسهایی که در runlevel صفر (shutdown) ثبت شدهاند رو لیست میکنه.
اسم هرکدوم رو درمیاره (basename $(readlink "$file"))
و اون سرویس رو بهصورت دستی stop میکنه.
هدف:
قبل از اینکه reboot کنی، همهی سرویسهایی که هنوز تحت sysv-rc اجرا شدن، خاموش بشن تا OpenRC بتونه تمیز بوت کنه.
این دستور هیچ خطری نداره؛ فقط سرویسهای در حال اجرا رو متوقف میکنه.
بعد از اجرای اون، سیستم رو ریبوت کن
- - -
بعد از بوت مجدد، با دستور زیر میتونی مطمئن شی که واقعاً OpenRC فعاله:
rc-status
-
بهتره که حلقه با اعمال دو تغییر زیر بازنویسی بشه. حذف back tick و دادن نام مناسب به متغیر میانی
for file in /etc/rc0.d/K*; do
service_name=$(basename $(readlink "$file"))
/etc/init.d/$service_name stop
done
-
ممنون آقای Chappie ،
قبل از توضیحات شما نمی دانستم که:
for file in /etc/rc0.d/K*; do s=`basename $(readlink "$file")` ; /etc/init.d/$s stop; done
فکر می کردم که این کدی است که بایستی در یک فایلی قرار دهم که با هر بار روشن شدن سیستم اجرا شود. بنابراین صبر کردم تا شما توضیح دهید.
ولی با توضیحات شما متوجه شدم که این هم یک دستور است که در ترمینال می نویسیم و بعد اینتر را می زنیم تا این دستور برخی فرآیندها را بطور صحیح تنها برای همین session ببندد و سیستم بطور صحیح خاموش بشود و ربطی به بعد ندارد، ربطی که بخواهیم که در یک فایلی قرار دهیم ندارد، ربطی که بخواهیم بعدا هم استفاده کنیم ندارد و فقط یکبار و در همین لحظه استفاده می شود، ممنون فهمیدم. عکس 1
من قبلا از window manager استفاده می کردم و برای خاموش کردن سیستم از این دستور استفاده می کردم:
# /usr/sbin/shutdown now
آیا بهتر است که از این دستور برای خاموش کردن سیستم در window manager استفاده کنم یا اینکه دستور بالایی که از for استفاده کرده است، بهتر است؟
- - -
بعد از بوت مجدد، با دستور زیر میتونی مطمئن شی که واقعاً OpenRC فعاله:
rc-status
عکس 2 ، متوجه نشدم.
-
برای استفاده روزمره (خاموش کردن یا ریبوت عادی سیستم) همیشه از
shutdown nowاستفاده کن
- - -
و اون حلقه for فقط یکبار لازم است — همان موقعی که داری از sysv-rc به openrc مهاجرت میکنی.
- - -
خروجی دستور rc-status یعنی چی و چطور بفهمی واقعاً OpenRC فعاله.
این دستور مخصوص OpenRC هست
و برای نشون دادن وضعیت سرویسها در هر runlevel به کار میره.
(در sysvinit چنین دستوری وجود نداره، چون اون از /etc/init.d مستقیم استفاده میکنه.)
- - -
اگر واقعاً OpenRC فعال باشه، باید خروجیای شبیه همون عکس ۲ باشه .
- - -
معنی ستونها:
Runlevel: default → همون سطح اجرای اصلی سیستم.
سرویسهایی که [ started ] هستن، الان در حال اجرا هستن.
[ stopped ] یعنی متوقفان یا توی این runlevel فعال نیستن.
خطهای “Dynamic Runlevel” یعنی سرویسهایی که موقتاً فعال شدن (مثل USB hotplug).
-
یکی از مواردی که در زمان بوت نشان داده می شد: عکس 1
ّINIT: No inittab.d directory found
می بود که با دستور:
# mkdir /etc/inittab.d
این مورد برطرف شد. عکس 2
-
یعنی OpenRC (یا در واقع init کلاسیک که زیرساخت اجرای OpenRC است) انتظار داشته دایرکتوری /etc/inittab.d/ وجود داشته باشد تا اگر تنظیمات اضافهای برای inittab هست، آنجا بارگذاری کند.
این پوشه در نصبهای debootstrap یا دستساز ممکن است ساخته نشده باشد.
آن پیام خطا فقط یک هشدار بود، نه خطای بحرانی.
ساخت /etc/inittab.d مشکل را کامل برطرف کرده.
نیازی به فایل خاصی داخلش نیست، مگر بخواهی در آینده inittab را ماژولارتر پیکربندی کنی (مثلاً برای runlevelهای خاص یا سرویسهای سفارشی).
- - -
OpenRC خودش مستقیماً از /etc/inittab.d/ استفاده نمیکند، بلکه sysvinit (که OpenRC روی آن اجرا میشود) از آن استفاده میکند.
- - -
kernel → sysvinit → OpenRC → سرویسها → login- - -
یعنی sysvinit همیشه اول میاد،
و OpenRC زیرمجموعهاش برای مدیریت سرویسهاست (جایگزین sysv-rc کلاسیک).
OpenRC فقط یک service manager است، نه init اصلی سیستم.
-
https://wiki.debian.org/OpenRC
-
Plymouth :
اگر شما هم از دبیان 13 استفاده می نمایید، احتمال می دهم که خطاهایی که در عکس 1 نشان می دهد را در هنگام بوت در سیستمتان خواهید دید، البته احتمال می دهم.
در نصب دبیان با میزکار سینامون که به روش عادی داشتم اینگونه بود. الان هم که بهوسیلهٔ Debootstrap ، دبیان را نصب کرده ام باز هم این خطاها با رنگ فیروزه ای باز هم دیده می شود.
اگر من بسته plymouth را حذف کنم، دیگر در زمان بوت این خطاها با رنگ فیروزه ای دیگر دیده نمی شوند. عکس 2
ولی همچنان این خطاها با دستور:
# dmesg --level=err,warn,crit
قابل مشاهده هستند.
علت را نمی دانم.
مورد بعدی که میخواهم با شما در میان بگذارم و چند روزی مرا سرگرم خود کرده بود، مربوط به عکس 3 می باشد. یعنی خطای زمان بوت:
ERROR: Plymouth faied to start
خیلی اذیتم کرد، تا اینکه با بررسی فایل etc/init.d/plymouth/ و محتوای آن متوجه شدم: عکس 4
# Short-Description: Stop plymouth during boot and start it on shutdown
حالا این را مقایسه کنید با :
Plymouth provides a boot-time I/O multiplexing framework - the most obvious
use for which is to provide an attractive graphical animation in place of
the text messages that normally get shown during boot. (The messages are
instead redirected to a logfile for later viewing.) However, in event-driven
boot systems Plymouth can also usefully handle user interaction such as
password prompts for encrypted file systems.
This package provides the basic framework, enabling a text-mode animation.
پلیموث یک چارچوب مالتیپلکسینگ ورودی/خروجی زمان بوت ارائه میدهد - که بارزترین کاربرد آن، ارائه یک انیمیشن گرافیکی جذاب به جای پیامهای متنی است که معمولاً در طول بوت نمایش داده میشوند. (در عوض، پیامها برای مشاهده بعدی به یک فایل لاگ هدایت میشوند.) با این حال، در سیستمهای بوت مبتنی بر رویداد، پلیموث همچنین میتواند به طور مفیدی تعامل کاربر مانند درخواست رمز عبور برای سیستمهای فایل رمزگذاری شده را مدیریت کند.
این بسته چارچوب اولیه را فراهم میکند و یک انیمیشن حالت متنی را فعال میکند.
من که نفهمیدم، اگر plymouth اصالتا برای زمان بوت طراحی شده چه ضرورتی دارد که در زمان بوت بخواهند دوباره آنرا stop کنند و در زمان shutdown سیستم بیایند و آنرا start کنند!!
اگر من فایل etc/init.d/plymouth/ را غیر فعال کنم، خطای ERROR: Plymouth faied to start دیگر نخواهد بود.
-
Plymouth فقط «ظاهر بوت» رو کنترل میکنه، نه لاگ کرنل رو
وقتی Plymouth فعاله، خروجی کرنل (که معمولاً پیامهای dmesg هستن)
از طریق اون نمایش داده میشن یعنی Plymouth رنگ و فونت و نحوه نمایش متن روی صفحه رو تعیین میکنه.
اما خود کرنل هنوز همون پیامها رو تولید میکنه.
- - -
بنابراین وقتی Plymouth رو حذف میکنی:
رنگبندی مخصوصش (رنگ فیروزهای و سبز) از بین میره،
اما چون پیامها توسط خود کرنل تولید میشن، هنوز وجود دارن و در dmesg ثبت میشن.
- - -
پیامهایی که در دو عکس ۱و۲ دیده میشن :
اینها خطا یا هشدارهای سطح firmware / kernel هستن،
و ربطی به Plymouth ندارن — کرنل خودش اونا رو موقع راهاندازی سختافزار چاپ میکنه.
Plymouth فقط اونها رو رنگی نشون میداد.
- - -
Plymouth رنگهای خاصی برای پیامهای info, warn, err تعریف میکنه.
- - -
چرا هنوز با dmesg --level=err,warn,crit دیده میشن؟
چون dmesg مستقیماً از حلقهٔ بافر کرنل (kernel ring buffer) میخونه،
که Plymouth هیچ نقشی در تولیدش نداره.
حتی اگر Plymouth، syslog یا journal نباشن، این پیامها درون حافظهٔ کرنل ذخیره میشن.
-
در مورد عکس ۳ و ۴
- - -
چیزی که متوجه شدی کاملاً درسته.
- - -
وظیفهٔ اصلی plymouth
Plymouth در اصل برای زمان بوت اولیه (initramfs) طراحی شده است:
وقتی کرنل تازه لود میشود و هنوز root filesystem بهطور کامل mount نشده،
initramfs , plymouthd را اجرا میکند تا وضعیت بوت را بهصورت گرافیکی نمایش دهد.
بعد از این مرحله، وقتی کنترل از initramfs به سیستم اصلی (init واقعی مثل systemd یا sysvinit) منتقل میشود، plymouth باید متوقف شود.
- - -
چرا اسکریپت init.d میگوید:
Stop plymouth during boot and start it on shutdown
چون در زمان بوت واقعی (مرحلهٔ OpenRC/sysvinit)، plymouth دیگر وظیفهای ندارد.
در عوض در زمان خاموش کردن سیستم دوباره برای چند ثانیه اجرا میشود تا صفحهای شبیه «Shutting down…» نمایش دهد.
به همین دلیل، وظیفهٔ فایل /etc/init.d/plymouth این است که:
در boot: اگر plymouth هنوز از initramfs در حال اجراست → آن را stop کند
در shutdown: دوباره اجراش کند برای انیمیشن خروج.
- - -
چرا در OpenRC خطا میدهد؟
چون در محیط OpenRC:
initramfs معمولاً plymouth را اصلاً راهاندازی نکرده (بهخصوص اگر initramfs سفارشی ساخته باشی)،
در نتیجه وقتی اسکریپت /etc/init.d/plymouth اجرا میشود و سعی میکند آن را «stop» یا «start» کند،
فرآیندی به نام /usr/sbin/plymouthd پیدا نمیکند → خطا میدهد:
* ERROR: plymouth failed to start- - -
چرا با غیرفعال کردن آن خطا رفع میشود؟
چون وقتی این اسکریپت را از runlevel حذف میکنی، دیگر OpenRC سعی نمیکند plymouth را اجرا یا متوقف کند،
در نتیجه هیچ پیام خطایی هم نمایش داده نمیشود.
-
سوال :
ببینید اصلا این مسیر وجود داره
/usr/sbin/plymouthdیا به عبارت دیگر مطمئن بشید plymouth نصب هست یا نه .
dpkg -l | grep plymouth
-
آقای Chappie ، ممنون از توضیحاتتان.
با توجه به عکس های 1 و 2 و 3 ، نمی دانم چرا همچنان خطای ERROR: plymouth failed to start را در زمان بوت می دهد.
-
حذف plymouth از مدیریت OpenRC :
sudo rc-update del plymouth boot
sudo rc-update del plymouth shutdown
sudo rc-update -u
اجازه بده sysvinit خودش plymouth رو کنترل کنه :
sysvinit خودش هنگام بوت، دستورهای start و stop سرویسها رو بر اساس فایل زیر کنترل میکنه:
/etc/inittab
برای اینکه plymouth در همین سطح (بدون دخالت OpenRC) مدیریت بشه،
کافیه دستور زیر رو اجرا کنی تا لینکهای استاندارد sysvinit برای plymouth برگردن:
sudo update-rc.d plymouth defaults
این دستور اسکریپت /etc/init.d/plymouth رو به runlevelهای سنتی sysvinit لینک میکنه:
/etc/rc2.d/S20plymouth
/etc/rc6.d/K20plymouth...
یعنی الان sysvinit خودش plymouth رو اجرا میکنه.
الان در OpenRC نباید plymouth در rc-update show دیده بشه:
rc-update show | grep plymouth(باید خروجی خالی بده)
اما در sysvinit هنوز فعال باقی میمونه:
ls /etc/rc*.d/*plymouth*
حالا ریبوت کن:
sudo reboot
-
سوال :
خروجی این دستورات رو هم برای من همینجا قرار بدید :
ps -p 1 -o pid,comm,argsls -l /sbin/initls -l /etc/rcS.d/ls -l /etc/rc2.d/cat /etc/inittab
-
ممنون آقای Chappie ،
دستورات را اجرا کردم ولی در تعدادی خطا داد: عکس 1
root@norouzi:~# rc-update del plymouth boot
* rc-update: service `plymouth' is not in the runlevel `boot'
root@norouzi:~# rc-update del plymouth shutdown
* rc-update: service `plymouth' is not in the runlevel `shutdown'
root@norouzi:~# rc-update -u
* Caching service dependencies ... [ ok ]
root@norouzi:~# update-rc.d plymouth defaults
* rc-update: plymouth already installed in runlevel `default'; skipping
root@norouzi:~# /etc/rc2.d/S20plymouth
-bash: /etc/rc2.d/S20plymouth: No such file or directory
root@norouzi:~# /etc/rc6.d/K20plymouth
-bash: /etc/rc6.d/K20plymouth: No such file or directory
root@norouzi:~# rc-update show | grep plymouth
plymouth | default
plymouth-log | sysinit
root@norouzi:~# ls /etc/rc*.d/*plymouth*
/etc/rc0.d/K01plymouth /etc/rc3.d/S04plymouth /etc/rc5.d/S04plymouth /etc/rcS.d/S14plymouth-log
/etc/rc2.d/S04plymouth /etc/rc4.d/S04plymouth /etc/rc6.d/K01plymouth
root@norouzi:~#
و بقیه دستوراتی که خواسته بودید اجرا کنم در عکس های 2 و 3 و 4 و 5 می باشد.
-
یعنی OpenRC در حال تلاش دوباره برای استارت چیزی است که sysvinit قبلاً اجرا کرده بود.
- - -
حذف plymouth از کنترل OpenRC
sudo rc-update del plymouth default
sudo rc-update del plymouth-log sysinit
sudo rc-update -u
بررسی اینکه واقعاً حذف شدن :
sudo rc-update show | grep plymouthاگر خروجی خالی بود یا فقط plymouth-log در حالت manual بود، یعنی موفق شدی .
(نباید دیگه در ستونهای default یا sysinit دیده بشن.)
اطمینان از اینکه sysvinit خودش اجراش میکنه:
sudo update-rc.d plymouth defaults
sudo update-rc.d plymouth-log defaults(اگر قبلاً تنظیم شدن، خودش میگه "skipping" و هیچکاری نمیکنه.)
سیستم رو ریستارت کن:
sudo reboot
-
آقای Chappie ، ممنون از لطفتون.
ولی بعد از اجرای دستوراتی که فرموده بودید و بعد از reboot سیستم، همچنان خطای ERROR: plymouth failed to start در هنگام بوت می آید.
زیاد مهم نیست. اصلا راضی به اذیتتان نیستم.
-
شرمنده منم دیگه نمیدونم چکار کنم .
هر چی به ذهنم رسید رو گفتم .
این کارها هم برای این بود که گفتم شاید هر دو دارن اجراش میکنن و یکیش رو خاموش کنیم .
خلاصه نفهمیدم دلیل این خطا چیه , شاید دوستان ایده ای داشته باشند و کمکی کنند .
-
می خواستم یکی از بسته ها را unhold کنم، نمیدانم چرا خطا می دهد.
-
اول این فایل رو ویرایش کنید :
sudo nano /etc/apt/preferences.d/nosystemdو به این تغییر بدید و ذخیره کنید :
Package: systemd
Pin: release *
Pin-Priority: -1
Package: systemd-sysv
Pin: release *
Pin-Priority: -1
Package: libpam-systemd
Pin: release *
Pin-Priority: -1
حالا میخوایم libpam-systemd رو unhold کنیم .
دوباره فایل بالا رو تغییر بدید و این خطوط رو حذف کنید :
Package: libpam-systemd
Pin: release *
Pin-Priority: -1
حالا دستورات زیر رو بزنید :
sudo apt update
sudo apt-mark unhold libpam-systemd
sudo apt-mark showhold
اینجوری نباید خطا بده .
-
این کار رو هم میتونید بکنید بعد از مثالهایی که در نوشته قبل آوردم:
فایل پین را موقتاً خالی/کامنت کن یا موقتاً جابهجا کن:
sudo mv /etc/apt/preferences.d/nosystemd /etc/apt/preferences.d/nosystemd.off
sudo apt updateهر hold/unhold که لازم داری بزن:
sudo apt-mark hold|unhold <pkg>
فایل پین را برگردان و apt update:
sudo mv /etc/apt/preferences.d/nosystemd.off /etc/apt/preferences.d/nosystemd
sudo apt updateنکته: وقتی دوباره Pin-Priority: -1 میگذاری، آن بسته «Candidate» نخواهد داشت؛ پس دفعهی بعد روی بستهی نصبنشده، apt-mark unhold دوباره خطا میدهد (طبیعی است).
نکته: پین کردن libpam-systemd لازم نیست (وقتی libpam-elogind داری، خودش Conflict میدهد و نصب نمیشود).
-
خلاصه:
وقتی برای یک بسته در /etc/apt/preferences.d/… پین میگذاری با :
Pin-Priority: -1یعنی به APT میگویی «این بسته اصلاً نامزد نصب نشود». نتیجهاش در خروجی زیر دیده میشود:
apt-cache policy libpam-systemd
Candidate: (none)
دستورهای apt-mark hold/unhold برای کار کردن، باید حداقل یکی از این دو را ببینند:
۱ - نسخهی نصبشدهی بسته در دیتابیس dpkg
۲ - یک Candidate از نظر APT
در سناریوی ما، بسته (مثل libpam-systemd) نصب نیست و پین -1 هم باعث شده Candidate: (none) باشد. یعنی «نه Installed داریم، نه Candidate». پس apt-mark نمیتواند بسته را resolve کند و خطای زیر منطقی است:
E: Can't select installed nor candidate version from package 'libpam-systemd' as it has neither of them
-
ممنون آقای Chappie ،
با راهنمایی هایی که فرموده بودید، حل شد. خیلی زحمت دادم. خدا خیرتان دهد.
-
❤️🙏✋
-
با سلام مجدد،
اگر در عکس 1 به دایرکتوری etc/init.d/ سیستم من نگاه کنید، در داخل این دایرکتوری ۵۶ عدد فایل وجود دارد.
اگر به شکل ظاهری آیکن فایل ها نگاه کنید، سه تا فایل از لحاظ شکل ظاهری آیکن ها شبیه هم هستند و به شکل آیکن فایل ساده هستند ولی ۵۳ فایل دیگر علامتی بر روی آیکن دارند و بنظرم فایل اجرایی می باشند.
این سه تا فایل به شکل آیکن ساده عبارتند از:
agetty ، cgroups ،savecache
اگر به حالت Open as administrator وارد این دایرکتوری شده و فایل ها را باز کنید، نوشتجات درونی این سه تا فایل تماماً به رنگ سیاه هستند.( عکس های 2 و 3 )
ولی آن ۵۳ فایل دیگر نوشته های درونشان به صورت رنگی می باشند. ( عکس های 4 و 5 )
چرا نوشتجات آن ۳ تا فایل تنها به رنگ سیاه است ولی نوشتجات آن ۵۳ فایل دیگر بهصورت رنگی است؟
سطر اول این سه تا فایل این عبارت است:
#!/usr/sbin/openrc-run
و سطر اول آن ۵۳ فایل دیگر بدین صورت است:
#!/bin/sh
بنظرتان علت چیست؟ و چکار می شود کرد که آن سه تا فایل دیگر هم تبدیل به فایل اجرایی بشوند؟
آیا خطای ERROR: Plymouth faied to start به این قضیه مربوط است؟!!
-
تفاوت رنگها از هایلایت ادیتور (Pluma) است، نه اجراشدنی/نشدنی بودن فایل. اسکریپتهایی که با
#!/usr/sbin/openrc-runشروع میشوند را Pluma بهصورت «Plain Text» تشخیص میدهد و رنگی نمیکند؛ پایین پنجره هم نوشته Plain Text. بقیه که
#!/bin/shدارند، بهصورت «sh» شناخته میشوند و رنگ میگیرند.
اجراشدنی بودن (Executable) را با آیکون نمیشود قطعی فهمید؛ با دستور زیر چک کن:
ls -l /etc/init.d/agetty /etc/init.d/cgroups /etc/init.d/savecacheاگر اول پرمیشنها -rwxr-xr-x نیست (فاقد x)، میتوانی اجراشدنیشان کنی , که خارج از بحث ماست و در این مورد هم سرخود نباید چیزی رو تغییر داد .
- - -
در نتیجه به خطای * ERROR: plymouth failed to start ربطی ندارد .
-
سوال :
طبق این نوشته مثل اینکه یه دستکاری هایی کردید در کانفیگهای plymouth :
https://forum.ubuntu-ir.org/index.php?topic=158347.msg1250291#msg1250291
این کارها رو کنید و بعدش ریستارت کنید و نتیجه رو بگید :
sudo apt-get purge plymouth plymouth-themes
sudo apt-get install plymouth plymouth-themes
sudo update-initramfs -u -k all
-
بعد از نصب سیستم دبیان بهصورت Debootstrap ، بلافاصله از timeshift استفاده کردم ، بنابراین جای نگرانی وجود ندارد بعد از هر نوع تغییری که شخصاً به سیستم می دهم، بر می گردم و با استفاده از timeshift سیستم را به حالت اولیه برمی گردانم، چون دقیقاً می دانم هر تغییری که بدهم بدون اطلاع شما، کار پیچیده می شود، بنابراین مطمن باشید وقتی موضوعی را در اینجا مطرح می کنم سیستم در حالت اولیه بعد از نصب دبیان بهصورت Debootstrap می باشد.
دستوراتی که فرموده بودید در عکس های 1 و 2 و 3 قابل مشاهده است، ولی همان خطا بعد از reboot سیستم هست.
بهطور کلی با نصب سیستم دبیان بهصورت Debootstrap و با OpenRC ، دو تا خطا وجود دارد، یکی از خطاها مربوط به زمان بوت، که عبارت از:
: ERROR: Plymouth faied to start
و دیگری خطای مربوط به زمان shutdown سیستم است، که عبارتند از: عکس 4
ERROR: apparmor failed to stop
فقط این دو تا خطا را در زمان بوت و خاموشی سیستم دارد.
حتی سیستم را یکباره دیگر از نو، بهصورت دبیان Debootstrap نصب کردم و اینبار برخلاف دفعه قبلی که ابتدا sysvinit را نصب کرده بودم وسپس OpenRC را نصب کردم، اینبار OpenRC را در مراحل نصب بهصورت Debootstrap ، از همان ابتدا نصب کردم، ولی تفاوتی در نتایج نداشت و این دو خطا در هر دو صورت وجود دارد.
-
خروجی این دستور رو همینجا قرار بدید :
sudo lsinitramfs /boot/initrd.img-$(uname -r) | grep -i plymouth
-
اگر دستور نوشته قبل خروجی داشت کارهای زیر رو انجام دهید :
بدون هیچ Plymouth
# OpenRC
sudo rc-service plymouth stop
sudo rc-update del plymouth default
sudo rc-update del plymouth boot
sudo rc-update del plymouth shutdown
sudo rc-update del plymouth sysinit
sudo rc-update del plymouth-log sysinit
sudo rc-update -u
# SysV
sudo update-rc.d -f plymouth remove
sudo update-rc.d -f plymouth-log remove
- - -
بعد از ریستارت و لاگین مجدد به سیستم چک کنید در حال اجرا هست یا نه و خروجی رو اینجا قرار بدید :
pgrep -x plymouthd >/dev/null && echo "plymouth: running" || echo "plymouth: not running"
plymouth --ping >/dev/null 2>&1 && echo "plymouth: running" || echo "plymouth: not running"
-
ممنون آقای Chappie ،
با اجرای دستوراتی که فرمودید و در عکس 1 و 2 و 3 مشخص است و همچنین اضافه کردن splash به فایل etc/default/grub/ بصورت:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
و سپس اجرای دستور:
# update-grub
مشکل مربوط به نشان داده شدن خطای ERROR: plymouth failed to start در زمان بوت سیستم حل شد و دیگر این خطا در هنگام بوت دیده نمی شود. صفحه خالی عکس دبیان که مربوط به اجرای plymouth است، در هنگام بوت دیده می شود و فرآیند اجرای بوت در پشت زمینه انجام می گیرد که نشان می دهد که plymouth کارش را در زمان بوت درست انجام می دهد.
همچنین هنگام کار با سیستم و اجرای دستور rc-ststus –servicelist در عکس 4 ، نشان می دهد که دو سرویس plymouth و plymouh-log بهدرستی stopped شده اند و نه started هستند و نه crashed و این را نشان می دهد که همه چیز درست است یعنی سرویس plymouth که بایستی در فرآیند بوت اجرا می شده و بعد از بوت stopped می شده، و به همین صورت انجام شده است.
ولی کلاً متوجه نشدم که چطوری این مساله را حل کردید. اگر به عکس 5 نگاه کنید با اجرای دستور rc-update show نشان می دهد که دیگر plymouth و plymouth-log در لیست خروجی این دستور جای ندارد. پس از کجا سیستم فهمیده که در زمان بوت سرویس plymouth را اجرا کند؟!
-
خط زیر در /etc/default/grub تعیین میکند پارامترهای کرنل در بوت عادی چه باشند:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"quiet ⇒ بیشتر پیامهای متنی کرنل را پنهان میکند.
splash ⇒ به اسکریپتهای initramfs میگوید Plymouth را اجرا کنند (اگر plymouth داخل initramfs باشد).
دستور:
sudo update-grubفایل تنظیمات گراب را بازتولید میکند (grub.cfg در /boot/grub/)، تا تغییر بالا در بوتِ بعدی اعمال شود.
splash فقط وقتی اثر دارد که plymouth نصب باشد و داخل initramfs قرار گرفته باشد.
در ستاپ تو (OpenRC/SysV را برای plymouth غیرفعال کردهای)، اضافه کردن splash باعث میشود plymouth فقط در initramfs اجرا شود؛ userspace دیگر سعی به start نمیکند و ارور قبلی تکرار نمیشود.
- - -
«چراییِ ارور» و «چطور حل شد»:
علّت اصلی: Plymouth داخل initramfs در early-boot اجرا میشد؛ بعد که وارد userspace شدی، OpenRC/SysV دوباره خواستند همان سرویس را start کنند. چون دیمون یا از قبل در حال اجرا بود یا اصولاً نباید در userspace start میشد، اسکریپت init با کُد خطا برگشت و OpenRC پیام داد:
* ERROR: plymouth failed to start.
راهحل مؤثر: مدیریت plymouth را به یکجا محدود کردیم:
در OpenRC/SysV، سرویس plymouth را از runlevelهای boot/default (و حتی shutdown در صورت عدم نیاز) حذف کردیم و فقط در صورت تمایل plymouth-log را در sysinit نگه داشتیم؛ یا کلاً هر دو را حذف کردیم.
(اختیاری) اگر splash را از GRUB برداری، اصلاً plymouth در initramfs هم اجرا نمیشود.
نتیجه: دیگر userspace تلاشی برای start مجدد plymouth نمیکند ⇒ تداخل/دوبار-استارت از بین رفت ⇒ ارور محو شد؛ لاگهای بوت هم همچنان در dmesg/سیسلاگ (و در صورت فعال بودن plymouth-log، در /var/log/boot.log) موجودند.
- - -
و ابتدا از این عکس فهمیدیم که از قبل استارت شده :
نشانهها در خروجی plymouthd --debug:
directory /run/plymouth already exists
plymouth is already running
این یعنی یک نمونهی plymouthd از قبل (معمولاً در initramfs) بالا بوده و وقتی در userspace دوباره میخواهی استارتش کنی، میگوید «already running» و اسکریپتِ سرویس با خطا خارج میشود؛ همان چیزی که بعداً به * ERROR: plymouth failed to start میرسید.
الان که start در userspace را حذف کردهای، دیگر تلاشِ دوبارهای انجام نمیشود و خطا باید برطرف شده باشد.
- - -
-
initramfs چیه؟
اولین روتفایلسیستمِ موقتیه که کرنل بعد از لود شدن میخونه.
بوتلودر → کرنل و فایل initrd.img (همون initramfs فشرده) رو به RAM میده.
کرنل اون آرشیو cpio رو بهصورت tmpfs مونت میکنه و اسکریپت /init داخلش رو بهعنوان PID 1 اجرا میکنه (به این میگن early userspace).
کارهایش:
لود ماژولهای ضروری (درایور دیسک/usb/raid/فایلسیستم…)
سرهم کردن RAID/LVM
بازکردن LUKS (اگر روت رمز شده باشه)
پیدا کردن و مونت کردن روت واقعی (/)
بعد با switch_root کنترل رو میده به سیستم اصلی (systemd یا sysvinit/OpenRC) و خودش آزاد میشه.
- - -
Plymouth اونجا چی کار میکنه؟
اگر بستهی plymouth نصب باشه و تو خط کرنل splash باشه، هوکهایش باعث میشن در initramfs استارت بشه.
نقشها:
نمایش اسپلش (بهجای پیامهای متنی)،
I/O multiplexer: مثلا گرفتن پسورد LUKS با ظاهر قشنگ،
با plymouth-log بعدتر لاگ بوت رو مینویسه.
وقتی سیستم به userspace اصلی رسید، باید خاموشش کنه (plymouth --quit).
روی systemd، واحدهای plymouth-quit*.service این کار را میکنند.
روی SysV/OpenRC، اسکریپت /etc/init.d/plymouth این وظیفه را دارد (معمولاً: «در بوت stop، در shutdown start»).
اروری که میدیدی چرا بود؟
Plymouth از initramfs قبلاً بالا بود؛ userspace (OpenRC/SysV) دوباره خواست startش کند ⇒ «already running» و اسکریپت با خطا برگشت ⇒
* ERROR: plymouth failed to start.با حذف استارتِ userspace (از runlevelها و لینکهای SysV) مشکل حل شد.
-
آقای Chappie ،
ممنون از توضیحات ارزشمند و وقتی را که صرف این مشکل نمودید.
بنظرم تنها یک مشکل مانده، خطای مربوط به زمان shutdown سیستم، یعنی : ERROR: apparmor failed to stop
بنظرتان برای حل این خطا از همین دستورات استفاده کنم و بجای plymouth از apparmor استفاده کنم؟
سوال دیگری که ذهنم را مشغول کرده این است که، چرا در antiX Linux ، در init هایش و ایزوهایی که می دهد تنها runit, SysV وجود دارد و OpenRC نیست؟!! آیا OpenRC مثلا سخت تر بود که استفاده نکردند یا اینکه فقط یک کار سلیقه ای است؟
و سوال دیگرم این است آیا روش مشخص و دستورات معینی وجود دارد که من سرعت بوت در حالت systemd و SysV و یا OpenRC را باهم بسنجم؟
آیا استفاده از systemd و SysV و یا OpenRC فقط در سرعت بوت و فرآیندهای زمان بوت نقش اساسی دارد یا اینکه در زمان استفاده از سیستم بر روی سرعت سیستم هم تاثیر می گذارد؟
-
بنظرم تنها یک مشکل مانده، خطای مربوط به زمان shutdown سیستم، یعنی : ERROR: apparmor failed to stop
بنظرتان برای حل این خطا از همین دستورات استفاده کنم و بجای plymouth از apparmor استفاده کنم؟
عکس های 1 و 2 ، کپی کردن من از روی دست استاد، که این تلاش من ناکام ماند و به نتیجه نرسید.
هر چند که اینکار باعث شد در زمان shutdown دیگر شاهد ERROR: apparmor failed to stop نباشم ولی در سیستم در حال اجرا بایستی apparmor ، به حالت started باشد و نه به حالت stopped.
که عکس های 3 و 4 که بعد از reboot گرفتم نشان می دهد که apparmor با اجرای دستورات عکس های 2 و 3 به حالت stopped رسیده است، بنابراین داروی سردرد را نتوانستم برای معده درد بکار ببرم.
-
همون کارهایی که کردید رو به قبلش برمیگردونیم
به runlevel درست (sysinit) برش گردان:
sudo rc-update add apparmor sysinit
sudo rc-update -uلینکهای SysV را حذف کردی، برگردان :
sudo update-rc.d apparmor defaultsهمین الان استارتش کن و وضعیت را چک کن:
sudo rc-service apparmor start
aa-status
rc-status --servicelist | grep -E 'apparmor|sysinit'
dmesg | grep -i apparmor | tail -n +1اگر aa-status لیست پروفایلها را نشان بدهد و rc-status برای apparmor عبارت started را بدهد، همهچیز درست است.
- - -
وقتی اسکریپت stop سرویس بیمعنی یا خراب است (مثل AppArmor در دبیان که پیام میدهد: Action 'stop' is meaningless) و در زمان خاموشی ارور failed to stop میبینی.
با zap به OpenRC میگویی: «این سرویس را رها کن؛ لازم نیست در shutdown آن را stop کنی.»
میخواهی AppArmor در حین کار سیستم started باشد، اما در خاموشی پیام خطا ندهد.
sudo nano /etc/local.d/apparmor-zap.stopمحتوای داخل فایل دقیقاً این باشد:
#!/bin/sh
rc-service --ifexists apparmor zap
اجراشدنیاش کن:
sudo chmod +x /etc/local.d/apparmor-zap.stop
سرویس local را برای اجرای اسکریپتهای *.stop در زمان خاموشی، به runlevel خاموشی اضافه کن:
sudo rc-update add local shutdown
sudo rc-update -u
(اختیاری) بررسی:
rc-update show | grep -E '^local'
ls -l /etc/local.d/apparmor-zap.stop- - -
از این به بعد هنگام shutdown، قبل از اینکه OpenRC بخواهد stop بیمعنی AppArmor را اجرا کند، این اسکریپت فقط «zap» میزند تا خطای
ERROR: apparmor failed to stop
دیگر دیده نشود و در طول کار سیستم AppArmor همچنان فعال بماند.
- - -
حذف/برگشت:sudo rm /etc/local.d/apparmor-zap.stop
sudo rc-update del local shutdown
sudo rc-update -u- - -
AppArmor یک LSM کرنلی است؛ در ابتدای بوت فعال میشود و پروفایلها داخل کرنل load میشوند. «خاموشکردن» AppArmor در حین کار سیستم عملاً معنیدار نیست (LSM را نمیتوان مثل یک دیمون stop کرد).
در دبیان، اسکریپت SysV مربوط به AppArmor یعنی /etc/init.d/apparmor برای عمل stop عمداً هیچ کاری نمیکند و پیام میدهد:
Action 'stop' is meaninglessو (مهم) با کُد غیرصفر خارج میشود تا بگوید این عمل قابل انجام نیست.
OpenRC هنگام خاموشی، طبق روال همهی سرویسها را stop صدا میزند. وقتی به AppArmor میرسد، چون اسکریپت با کُد غیرصفر برمیگردد، OpenRC این را بهصورت خطا گزارش میکند:
* ERROR: apparmor failed to stopدر واقع «چیزی خراب نشده»؛ فقط اسکریپت میگوید «stop بیمعنی است» و OpenRC آن را «failed» نمایش میدهد.
نتیجه: این پیام ظاهری/زیباشناختی است، نه خرابی واقعی. AppArmor باید در زمان اجرا started بماند و نیازی نیست در shutdown متوقف شود.
راهحلی که گفتیم دقیقاً برای همیناند:
AppArmor را در runlevel sysinit نگه دار (برای start) و از runlevel shutdown حذف کن تا OpenRC اصلاً stop صدا نزند.
یا قبل از خاموشی یک اسکریپت کوچک بگذار که روی AppArmor فقط zap بزند (علامت started را پاک کند) تا OpenRC دنبال stop نرود.
اینطوری AppArmor در حین کار سیستم فعال میماند، و در خاموشی هم دیگر پیام «failed to stop» نمیبینی.
-
AppArmor را در runlevel sysinit نگه دار (برای start) و از runlevel shutdown حذف کن تا OpenRC اصلاً stop صدا نزند.
سعی کردم از این راهی که گفتید بروم.
ولی دمش را می گیرم سرش را تکون می ده، سرش را می گیرم دمش را تکون می ده. خسته ام کرد. نشد.
بعد از اجرای دستورات عکس 1 و reboot سیستم، جواب شد عکس 2 و 3 یعنی اینکه هر چند که در هنگام shutdown دیگر آلارم ERROR: apparmor failed to stop نمی آید، ولی چه فایده در حین اجرای سیستم appamor ، متوقف شده. و در لیست rc-update show هم نیست.
-
مسیر رو یکجا اشتباه رفتی. با update-rc.d لینکهای SysV رو دست زدی و در عین حال AppArmor رو از runlevel اوپنRC هم بیرون انداختی، برای همین بعد از ریبوت «stopped» موند و در rc-update show هم دیده نشد.
۱ )
اسکریپت و ابزارها را مطمئن کن
sudo apt-get install --reinstall apparmor apparmor-utils۲ )
AppArmor را به runlevel درستِ OpenRC برگردان
sudo rc-update add apparmor sysinit
sudo rc-update -u
۳ )
همین الان استارتش کن و چک کن
sudo rc-service apparmor start
aa-status
rc-status --servicelist | grep apparmor
dmesg | grep -i apparmor | tail -n +1
اگر همهچیز درست باشد: aa-status تعداد پروفایلها را نشان میدهد و در rc-status وضعیت started میبینی.
- - -
حالا برگرد به این لینک :
https://forum.ubuntu-ir.org/index.php?topic=158347.msg1250325#msg1250325
و از این قسمت شروع کن به انجام دادن :
- - -
وقتی اسکریپت stop سرویس بیمعنی یا خراب است (مثل AppArmor در دبیان که پیام میدهد: Action 'stop' is meaningless) و در زمان خاموشی ارور failed to stop میبینی.
- - -
به عبارت دیگه راه حل فعال کردن zap رو برو .
- - -
چند نکته مهم
OpenRC از runlevelهای خودش استفاده میکند (sysinit, boot, default, shutdown). دستکاری با update-rc.d (لینکهای /etc/rc?.d/) به OpenRC ربطی ندارد و کمکی به استارتشدن سرویس در بوت نمیکند.
اگر قبلاً با update-rc.d -f apparmor remove لینکهای SysV را حذف کردهای، مشکلی نیست؛ فقط یادت باشد برای بوت شدن تحت OpenRC، همین rc-update add apparmor sysinit تعیینکننده است.
اگر خواستی لینکهای SysV را برگردانی (ضروری نیست)، میتوانی بگویی:
sudo update-rc.d apparmor defaultsولی باز هم استارتِ واقعیِ بوتِ تو با rc-update کنترل میشود.
- - -
-
آقای Chappie ،
با سلام و تشکر مجدد.
همان روش zap را می خواهم بروم، ولی این مشکلات را دارم:
۱- پوشه /etc/local.d/ را در سیستمم نداشتم. خودم آنرا ساختم. آیا مورد ی ندارد؟
۲-اگر
# echo "#!/bin/sh" > apparmor-zap.stop
بکار بگیرم خطای
-bash: !/bin/sh: event not foundرا می دهد، بنظرتان چرا این خطا را می دهد.
مجبور می شوم این را بصورت یک فاصله بین !# و bin/sh/ بکار بگیرم، یعنی:
# echo "#! /bin/sh" > apparmor-zap.stopآیا راهی وجود دارد که به حالت اولی بکارببرم؟
۳-با بکارگیری فرمان rc-update add local shutdown خطای rc-update: service `local' does not exist را داد و در این مرحله متوقف شدم.
-
- راه نمایی از راه دور خیلی سخت و وقت گیر هست
یک پیغام میدم و برای دریافت خروجی باید یک روز صبر کنم !
بخصوص زمانی که ستاپ شمارو پاسخ دهنده ندارد.
- با سرچی که کردم OpenRC دبیان در یک سری جزییات فرق هایی داره با توزیع های دیگری که از systemd استفاده نمیکنند.
بنابراین راه حلهایی که بعضا میدم هماهنگی ندارد با دبیان.
- همونطور که قبلا گفتم AppArmor در حال اجرا باشه و توجه ای هم به اون پیغام در حال خاموشی نکنید
پیغام خاصی نیست که بخواد برطرف بشه .
- خیلی وقت هم هست که این تاپیک به پایان رسیده و به حاشیه رفته و سوالهایی که پرسیده میشه ربطی به موضوع این تاپیک نداره .
- در کل برای دبیان پیشنهاد من اینست که از همون systemd استفاده کنید چون تمرکز اصلی توسعه دهنده های دبیان رو systemd هست و ممکنه برای حالتهای دیگر به باگ ها و ایرادات ریزی بر بخورید .
-
اگر در عکس 1 به دایرکتوری etc/init.d/ سیستم من نگاه کنید، در داخل این دایرکتوری ۵۶ عدد فایل وجود دارد.
اگر به شکل ظاهری آیکن فایل ها نگاه کنید، سه تا فایل از لحاظ شکل ظاهری آیکن ها شبیه هم هستند و به شکل آیکن فایل ساده هستند ولی ۵۳ فایل دیگر علامتی بر روی آیکن دارند و بنظرم فایل اجرایی می باشند.
این سه تا فایل به شکل آیکن ساده عبارتند از:
agetty ، cgroups ،savecache
بنظرتان علت چیست؟ و چکار می شود کرد که آن سه تا فایل دیگر هم تبدیل به فایل اجرایی بشوند؟
در حین کار بر روی این موضوع، به تعدادی نتایج بهصورت تجربی در مورد شکل ظاهری آیکن ها رسیدم، آنها را برای استفاده دوستان در اینجا قرار می دهم:
بررسی حالت های مختلف:
حالت اول:
نام فایل متنی بدون پسوند sh. باشد و فایل خالی و بدون متن باشد.
نتیجه: همانطور که در عکس test-1 می بینید، آیکن فایل بهصورت شکل ساده نشان داده می شود.
حالت دوم:
نام فایل متنی بدون پسوند sh. باشد و فایل با متن ساده باشد.
نتیجه: همانطور که در عکس test-2 می بینید، آیکن فایل بهصورت شکل ساده نشان داده می شود.
حالت سوم:
نام فایل متنی بدون پسوند sh. باشد و فایل با متن /bin/#! در خط اول شروع شده باشد و سپس نام shell آورده شود که این نام shell واقعی باشد.
نتیجه: همانطور که در عکس های test-3 الی test-10 می بینید،
اگر در خط اول بعد از نوشته /bin/#! ، نام یکی از shell های واقعی قرار بگیرد، که عبارتند از:
sh , bash , csh , ksh , zsh , dash , tcsh , fish
آنوقت، آیکن فایل بهصورت شکل ساده نشان داده نمی شود.
حالت چهارم:
نام فایل متنی بدون پسوند sh. باشد و فایل با متن /bin/#! در خط اول شروع شده باشد و سپس نام shell آورده شود که این نام shell غیر واقعی و ساختگی باشد.
نتیجه: همانطور که در عکس های test-11 و test-12 می بینید،
اگر در خط اول بعد از نوشته /bin/#! ، نام shell بهصورت غیر واقعی و ساختگی باشد.
آنوقت، آیکن فایل بهصورت شکل ساده نشان داده می شود.
حالت پنجم:
نام فایل متنی بدون پسوند sh. باشد و فایل با متن /usr/bin/#! در خط اول شروع شده باشد و سپس نام shell آورده شود که این نام shell واقعی باشد
نتیجه: همانطور که در عکس هایtest-13 می بینید،
اگر در خط اول بعد از نوشته /usr/bin/#! ، نام یکی از shell های واقعی قرار بگیرد، که عبارتند از:
sh , bash , csh , ksh , zsh , dash , tcsh , fish
آنوقت، آیکن فایل بهصورت شکل ساده نشان داده نمی شود.
حالت ششم:
نام فایل متنی با پسوند sh. باشد و فایل خالی و بدون متن باشد.
نتیجه: همانطور که در عکس test-14 می بینید، آیکن فایل بهصورت شکل ساده نشان داده می شود.
حالت هفتم:
نام فایل متنی با پسوند sh. باشد و فایل با متن ساده یا هر متن دیگری باشد.
نتیجه: همانطور که در عکس test-15 می بینید، آیکن فایل بهصورت شکل ساده نشان داده نمی شود.
حالت هشتم یا حالت خاص:
نام فایل متنی بدون پسوند sh. باشد و فایل با متن /bin/#! و یا /usr/bin/#! در خط اول شروع شده باشد و سپس نام shell آورده شود که این نام shell واقعی باشد. ولی در اینجا بعد از نام shell واقعی تعدادی حروف اختیاری قرار دهید.
نتیجه: همانطور که در عکس test-16 می بینید، آیکن فایل بهصورت شکل ساده نشان داده نمی شود
نتیجه کلی:
پس اینکه آیکن فایل متنی بهصورت شکل ساده نشان داده شود یا نشود به محل قرارگیری آن در دایرکتوری خاص ربطی ندارد و همچنین به اعطای مجوز خاص به آن فایل ربطی ندارد.
برای اینکه آیکن فایل متنی بهصورت ساده نشان داده نشود، یکی از این دو شرط زیر کافیست و تنها کافیست یکی از این شرط ها باشد:
شرط اول: فایل دارای پسوند sh. باشد و فایل خالی نباشد.
شرط دوم: فایل با متن /bin/#! و یا /usr/bin/#! در خط اول شروع شده باشد و سپس نام shell آورده شود که این نام shell واقعی باشد.( حتی در اینجا می توان بعد از نام shell واقعی تعدادی حروف اختیاری قرار داد.)
مثلاً چرا فایل های agetty ، cgroups ،savecache که در مسیر دایرکتوری etc/init.d/ سیستم من قرار دارند بهصورت آیکن شکل ساده در سیستم من نشان داده شده اند؟
چون نه شرط اول و نه شرط دوم در مورد اینها صادق نیست.
-
ادامه عکس ها.
-
ادامه عکس ها.
-
ادامه عکس ها.
-
توی اسکرینشاتِ سوم (فهرست /etc/init.d) دو جور آیکن میبینی:
برگه با «لوزی بنفش» ⟵ اینها توسط دیتابیس MIME بهعنوان Shell script تشخیص داده شدهاند (معمولاً چون shebang شبیه #!/bin/sh یا #!/usr/bin/env bash دارند).
برگه ساده (بدون لوزی) ⟵ اینها Shell script شناخته نشدهاند؛ برای فایلمنیجر فقط «متن ساده» هستند.
علت تفاوت دقیقاً از همینجاست:
فایلهایی مثل agetty و cgroups با خط اول #!/usr/sbin/openrc-run شروع میشوند. openrc-run داخل قواعدِ shared-mime-info بهعنوان «مفسر شل» لیست نشده، بنابراین MIME آنها به text/plain میافتد و آیکنِ برگهٔ ساده میگیرند. در عوض، بقیهٔ اسکریپتها (مثل alsa-utils, checkfs.sh, rcS، …) shebang استاندارد شِل دارند و با MIME text/x-sh یا application/x-shellscript شناخته میشوند؛ برای همین آیکنِ لوزی بنفش میبینی.
- - -
این قضیه فقط نمایشی است؛ openrc-run همچنان مفسر درستیست و اسکریپتهایت کار میکنند.
پسوند .sh مهم نیست؛ ملاک، shebang و قوانین MIME است.
بعضی فایلمنیجرها امضای «اجرایی بودن» را هم از بیتِ +x میگیرند؛ اما در تفاوتی که در عکس تو میبینیم، عامل اصلی همان MIME است (نه پسوند و نه الزاماً پرمیشن).
- - -
برای تأیید روی سیستم خودت:
file -b --mime-type /etc/init.d/agetty
file -b --mime-type /etc/init.d/alsa-utils
xdg-mime query filetype /etc/init.d/agetty- - -
https://forum.ubuntu-ir.org/index.php?topic=158347.msg1250312#msg1250312
-
.
-
در حین کار بر روی این موضوع، به تعدادی نتایج بهصورت تجربی در مورد شکل ظاهری آیکن ها رسیدم، آنها را برای استفاده دوستان در اینجا قرار می دهم:
همچنانکه در اول آن ارسالی توضیح دادم، این تحقیق فقط و فقط در مورد شکل ظاهری آیکن ها بود که در هشت حالت توضیح دادم.
که چکار کنیم که تنها شکل ظاهری آیکن ها از حالت ساده به حالت غیر ساده یا همان لوزی بنفش دار تغییر کند.
در رابطه با مطلبی که دوستمان آقای Chappie ، زحمت کشیدند و توضیحات تکمیلی و مثل همیشه عالی ارایه دادند، تصمیم گرفتم که چند تا
عکس که توضیحات ایشان را با مثال نشان دهد، بگذارم.
-
در حین کار بر روی این موضوع، به یکی از نتایج جانبی که رسیدم، برای استفاده دوستان در اینجا قرار می دهم.
قبل از طرح این موضوع در اینجا من با command-line text editors چندان آشنا نبودم و کار با آنها برایم می شود گفت غیر ممکن بود، تنها با nano و آنهم ctrl+o و ctrl+x ، اگر آنهم جور در می آمد.
کار بدین شکل با nano هم برایم سخت بود و ترجیح می دادم بلاجبار تنها از text editors های گرافیکی استفاده کنم.
قبلاً خیلی از دوستان در این انجمن از vim صحبت می کردند. چند بار سعی کردم از اینترنت، یاد بگیرم، ولی اصلاً سر در نمی آوردم.
اگر دقت کنید این فردی که من روشش را برای debootstrap دنبال کردم آمد و در همان ابتدا vim را include کرد به فرایند debootstrap .
با خودم گفتم چه اشکالی دارد حالا که ایشان آمده و از vim استفاده کرده من بار دیگر سعی کنم تا شاید بتوانم حداقلی از آن را یاد بگیرم.
بهطور اتفاقی به سایتی برخوردم که vim را توضیح داد، که من تازه متوجه شدم و الان به لطف آموزشی که آن سایت داده بود، من اصول اولیه اش را یاد گرفتم، الان نه تنها از vim استفاده می کنم، خیلی هم از کار با آن لذت می برم.
این مطلب را اینجا مطرح کردم که اگر دوستانی بودند که با vim مشکل دارند،اگر خواستند بروند و خیلی آسان یاد بگیرند. و این هم آدرس آن سایت:
https://sokanacademy.com/plus/hrmadani/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-vim-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84 (https://sokanacademy.com/plus/hrmadani/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-vim-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84)
-
تفاوت خروجی اون دو دستور در تستی که انجام دادین
عکس رو دوباره ضمیمه کردم
- - -
این دو تا ابزار از دو «مغزِ تشخیص MIME» متفاوت استفاده میکنند.
file -b --mime-type test-C.sh → فقط محتوا را بو میکشد (libmagic). چون داخل فایل فقط hello world است و shebang ندارد، میگوید text/plain.
libmagic همون کتابخانهایه که پشت دستور file کار میکنه و «نوع فایل» رو از روی محتوای فایل حدس میزنه، نه از روی پسوند.
- - -
xdg-mime query filetype test-C.sh → طبق استاندارد freedesktop عمل میکند: اول اگر از محتوا چیزی نفهمد، به اسم فایل/پسوند نگاه میکند. پسوند .sh طبق پایگاه shared-mime-info به application/x-shellscript مَپ شده؛ بنابراین همین را برمیگرداند. فایلمنیجر دسکتاپ هم از همین پایگاه استفاده میکند، برای همین آیکن «اسکریپت» میبینی.
- - -
یعنی هر دو خروجی «درست»اند، فقط معیارشان فرق میکند:
یکی محتوامحور (libmagic)، یکی ناممحور وقتی محتوا چیزی ثابت نمیکند (shared-mime-info).
- - -
دستورات مفید:
file -v
file -b --mime-type yourfile
xdg-mime query filetype yourfile
gio info -a standard::content-type yourfile
-
***** یک یادگاری از طرف من به کاربران انجمنهای فارسی اوبونتو *****
در حین کار بر روی این موضوع Debootstrap، به تعدادی نتایج جانبی رسیدم، آنها را برای استفاده دوستان در اینجا قرار می دهم:
قبل از اینکه اقدامی کنم، خروجی دستور زیرا را بهدست می آورم:
# dmesg --level=err,warn,crit
خروجی این دستور در عکس 1 مشخص است.
همانطور که خواهید دید خطاهای پیش آمده یا از نبود framware مربوط به سخت افزاری است که با نصب بسته ای حل می شود یا مربوط به تنظیمات بایوس است که با تنظیم درست بایوس حل می شود یا مربوط به نصب بسته ای یا تنظیمات نامناسب نرم افزاری و یا مربوط به تنظیمات پیشفرض کرنل است، که با تنظیمات صحیح آن هم حل می شود.
#############################################################################
متن خطا:
[ 24.689221] r8169 0000:05:00.0: Direct firmware load for rtl_nic/rtl8168e-3.fw failed with error -2
[ 24.689226] r8169 0000:05:00.0: Unable to load firmware rtl_nic/rtl8168e-3.fw (-2)
حل خطا:
# apt install firmware-realtekالبته توجه کنید که این بسته جزو firmware-nonfree می باشد. بعد از نصب این بسته بایستی reboot بکنیم.
نتیجه:
در عکس 2 مشخص است. دیگر این خطاها نیست.
##############################################################################
متن خطا:
[ 2.848508] ata2.01: failed to resume link (SControl 0)
[ 2.848586] ata1.01: failed to resume link (SControl 0)
حل خطا:
برای حل این مشکل، من به تنظیمات بایوس رفتم و سپس در آنجا به قسمت Advanced رفتم، در آنجا به قسمت SATA Configuration و در آنجا به قسمت SATA mode ، و در آنجا بجای حالت IDE Mode آن را تغییر دادم و گذاشتم روی AHCI Mode . روش کار بر روی سیستم خودم را در عکس های 3 و 4 گذاشتم.
نتیجه:
در عکس 5 مشخص است. دیگر این خطاها نیست.
#############################################################################
متن خطا:
[ 1.365304] r8169 0000:05:00.0: can't disable ASPM; OS doesn't have ASPM control
حل خطا:
این خطای ASPM را من بدین صورت حل کردم:
رفتم به فایل etc/default/grub/ و سطر GRUB_CMDLINE_LINUX_DEFAULT را پیدا کردم و بعد عبارت:
pcie_aspm=off
را به آن اضافه کردم، که می شود، بدین صورت :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=off"
یادتان نرود، یادتان نرود، بعد دستور update-grub را بکاربردم و سپس reboot کردم.
نکته:
Options in GRUB_CMDLINE_LINUX are always effective.
Options in GRUB_CMDLINE_LINUX_DEFAULT are effective ONLY during normal boot (NOT during recovery mode).
GRUB_CMDLINE_LINUX
Entries on this line are added to the end of the 'linux' command line (GRUB legacy's "kernel" line) for both normal and recovery modes. It is used to pass options to the kernel.
GRUB_CMDLINE_LINUX_DEFAULT
This line imports any entries to the end of the 'linux' line (GRUB legacy's "kernel" line). The entries are appended to the end of the normal mode only.
https://askubuntu.com/questions/575651/what-is-the-difference-between-grub-cmdline-linux-and-grub-cmdline-linux-default (https://askubuntu.com/questions/575651/what-is-the-difference-between-grub-cmdline-linux-and-grub-cmdline-linux-default)
نتیجه:
در عکس 6 مشخص است. دیگر این خطا نیست.
#############################################################################
متن خطاها:
[ 1.147807] ACPI Warning: SystemIO range 0x0000000000000428-0x000000000000042F conflicts with OpRegion 0x0000000000000400-0x000000000000047F (\PMIO) (20240827/utaddress-204)
[ 1.147819] ACPI Warning: SystemIO range 0x0000000000000540-0x000000000000054F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20240827/utaddress-204)
[ 1.147824] ACPI Warning: SystemIO range 0x0000000000000530-0x000000000000053F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20240827/utaddress-204)
[ 1.147827] ACPI Warning: SystemIO range 0x0000000000000500-0x000000000000052F conflicts with OpRegion 0x0000000000000500-0x0000000000000563 (\GPIO) (20240827/utaddress-204)و همچنین
[ 1.147831] lpc_ich: Resource conflict(s) found affecting gpio_ich
حل خطا:
رفتم به فایل etc/default/grub/ و سطر GRUB_CMDLINE_LINUX_DEFAULT را پیدا کردم و بعد عبارت:
acpi_enforce_resources=no
را به آن اضافه کردم، که با داده هایی که قبلا وارد کرده بودم، می شود، بدین صورت:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=off acpi_enforce_resources=no"
یادتان نرود، یادتان نرود، بعد دستور update-grub را بکاربردم و سپس reboot کردم.
نتیجه:
در عکس 7 مشخص است. دیگر این خطاها نیست.
#############################################################################
متن خطاها:
[ 0.141257] TSC synchronization [CPU#0 -> CPU#1]:
[ 0.141257] Measured 19341789534 cycles TSC warp between CPUs, turning off TSC clock.و همچنین
[ 0.810955] Unstable clock detected, switching default tracing clock to "global"
If you want to keep using the local clock, then add:
"trace_clock=local"
on the kernel command line
حل خطا:
رفتم به فایل etc/default/grub/ و سطر GRUB_CMDLINE_LINUX_DEFAULT را پیدا کردم و بعد عبارات:
trace_clock=local clocksource=hpet tsc=unstable
را به آن اضافه کردم، که با داده هایی که قبلا وارد کرده بودم، می شود، بدین صورت:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=off acpi_enforce_resources=no trace_clock=local clocksource=hpet tsc=unstable"
یادتان نرود، یادتان نرود، بعد دستور update-grub را بکاربردم و سپس reboot کردم.
نتیجه:
در عکس 8 مشخص است. دیگر این خطاها نیست.
#############################################################################
متن خطا:
[ 24.467886] kauditd_printk_skb: 102 callbacks suppressed
نکته:
Linux uses this mechanism to throttle the spamming of log events, decreasing the likelihood of a denial-of-service attack.
You can find tune this feature by amending two settings net.core.message_burst and net.core.message_cost.
These parameters are used to limit the warning messages written to the kernel log from the networking code. They enforce a rate limit to make a denial-of-service attack impossible. A higher message_cost factor, results in fewer messages that will be written. Message_burst controls when messages will be dropped. The default settings limit warning messages to one every five seconds
Please note that disabling this mechanism is not recommend in production environments.
https://stackoverflow.com/questions/54955662/role-of-kauditd-printk-skb-in-linux-kernel (https://stackoverflow.com/questions/54955662/role-of-kauditd-printk-skb-in-linux-kernel)
This just means you were getting a burst of audit messages and the kernel ratelimited them. Based on the context these were probably apparmor "provfile_load" messages, which is not a problem.
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1666644 (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1666644)
پس این مکانیزم هشدار مفید است و نبایستی آنرا غیر فعال کنیم، ولی بایستی بدانم که چه عاملی سبب این همه پیام های audit messages شده است.
حل خطا:
حذف بسته apparmor باعث شد، که این خطا دیگر نشان داده نشود. هیچ توصیه ای در رابطه با نگهداری یا حذف یا تغییرات موثر در رابطه با این بسته apparmor نمی کنم و فقط می خواستم، نشان بدهم که عامل این همه callbacks مربوط به kauditd_printk_skb ، آقای apparmor بوده است.
نتیجه:
در عکس 9 مشخص است. دیگر این callbacks یا تماسهای برگشتی نیست.
#############################################################################
در رابطه با سه خطای مانده، به راه حل عملی که این خطاها دیگر نشان داده نشود، نرسیدم، پس الکی چیزی در این مورد نمی نویسم.
#############################################################################
پیشنهاد:
پیشنهاد می کنم اگر در سیستم خودتان با خطاهای دیگری روبرو هستید، اول بروید در اینترنت از تجربیات افراد دیگر استفاده کنید و اگر نتوانستید در اینترنت به جوابی برسید و مطمن شدید که این خطاها از تنظیمات بایوس یا نبود framware مربوط به سخت افزاری یا وجود بسته ای نامناسب یا تنظیمات نامناسب نرم افزاری نبود و اگرخواستید در این مورد یک نیم نگاهی به پارامترهای خط فرمان هسته بیاندازید، به این سایت زیر سر بزنید:
https://docs.kernel.org/admin-guide/kernel-parameters.html#the-kernel-s-command-line-parameters (https://docs.kernel.org/admin-guide/kernel-parameters.html#the-kernel-s-command-line-parameters)
می دانم که خیلی گیج کننده است وخیلی هم طولانی، یک روش کار آسان به این صورت است که محتوای آن سایت را بردارید و کپی کنید در یک نرم افزار texteditor گرافیکی مانند Pluma ، بعد بروید از متن پیام خطا یا هشدار کلمات غیر عمومی و اختصاصی را پیدا کنید و از طریق search for text آن نرم افزار ، آن عبارت را جستجو کنید و توضیحات را بخوانید، در رابطه با اینکه بعد بخواهید کاری بکنید یا نه، تصمیم فقط و فقط با شماست.
#############################################################################
هشدار:
برخی گزینه های پارامترهای خط فرمان هسته و همچنین تنظیمات بایوس برای تنظیماتشان نیازمند دانش گسترده و فنی پیشرفته ای است، که اگر تنظیمات نامناسبی را بکار ببرید، احتمال اینکه سیستمتان دچار خرابی و سوختگی سخت افزاری بشود، وجود دارد.
#############################################################################
-
ادامه عکس ها.
-
Debian Debootstrap Install (AKA Installing Debian "the Arch way")+OpenRC+MATE Desktop
#########################Debian+Debootstrap+Install+OpenRC+MATE Desktop+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.#######
###########################################################################################################
#####I am installing the Mate desktop here, but you can install another desktop according to your taste.###
###########################################################################################################
#####I am installing the lightdm display manager here, but you can install another display manager#########
#####according to your taste.##############################################################################
###########################################################################################################
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 openrc sysvinit-core orphan-sysvinit-scripts elogind libpam-elogind
root@debian:/# apt-mark hold systemd systemd-sysv libpam-systemd
root@norouzi:~# cat > /etc/apt/preferences.d/nosystemd << "EOF"
> Package: systemd
> Pin: release *
> Pin-Priority: -1
>
> Package: systemd-sysv
> Pin: release *
> Pin-Priority: -1
>
> Package: libpam-systemd
> Pin: release *
> Pin-Priority: -1
> EOF
root@debian:/#
root@norouzi:~# apt-mark showhold
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" > /etc/hosts
root@debian:/# echo "127.0.1.1 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 yourusemame
root@debian:/# usermod -aG cdrom,floppy,audio,dip,video,plugdev,netdev yourusername
root@debian:/# usermod -s /bin/bash yourusernamr
root@debian:/# apt install sudo
root@debian:/# usermod -aG sudo yourusername
root@debian:/# cat /etc/sudoers
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 install firmware-linux
root@debian:/# apt install mate-desktop-environment
root@debian:/# apt install mate-desktop-environment-extras
root@debian:/# apt install lightdm
root@debian:/# mkdir /etc/inittab.d
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
root@debian:~# reboot
###########################################################################################################
##### After rebooting, if you see the error "ERROR: plymouth failed to start. " in the boot log.###########
##### Method 1: Remove the plymouth package ###############################################################
###########################################################################################################
##### Method 2:
##### In the second method, you will not remove the plymouth package, but you will make further adjustments until the plymouth-related error is resolved.
# OpenRC
root@debian:~# sudo rc-service plymouth stop
root@debian:~# sudo rc-update del plymouth default
root@debian:~# sudo rc-update del plymouth boot
root@debian:~# sudo rc-update del plymouth shutdown
root@debian:~# sudo rc-update del plymouth sysinit
root@debian:~# sudo rc-update del plymouth-log sysinit
root@debian:~# sudo rc-update -u
# SysV
root@debian:~# sudo update-rc.d -f plymouth remove
root@debian:~# sudo update-rc.d -f plymouth-log remove
######And add the splash option to the file /etc/default/grub , as follows: ##############################
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
##### then ##############################
root@debian:~# update-grub
root@debian:~# reboot
########################################################################################################################
########################################################################################################################
-
اصلاحیه:
من با دقت بیشتری برخی موارد را دوباره و دوباره بررسی کردم.
در اکثر موارد مربوطه، درست می باشند، ولی موارد مربوط به plymouth نیاز به توضیحات تکمیلی و انجام برخی اصلاحات دارند.
OpenRC :
بعد از نصب دبیان بهصورت Debootstrap در حالت OpenRC ، نه در هنگام boot و نه در هنگام shutdown ، صفحه مربوط به plymouth ظاهر نمی شود و در هنگام بوت خطای زیر داده می شود:
ERROR: plymouth failed to start
راهکار اول:
با اضافه کردن آپشن splash به فایل etc/default/grub/ ، بهصورت زیر:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
و سپس اجرای دستور update-grub و سپس reboot کردن سیستم ، این حالت رخ می دهد:
- در هنگام boot ، صفحه plymouth نشان داده می شود.
- در هنگام boot ، خطای مربوط به plymouth ، همچنان وجود دارد.
- در هنگام shutdown ، صفحه plymouth نشان داده نمی شود.
راهکار دوم:
برای رفع خطای ERROR: plymouth failed to start ، قبلاً 9 دستور برای رفع این خطا انجام می دادم،یعنی بصورت:
# OpenRC
sudo rc-service plymouth stop
sudo rc-update del plymouth default
sudo rc-update del plymouth boot
sudo rc-update del plymouth shutdown
sudo rc-update del plymouth sysinit
sudo rc-update del plymouth-log sysinit
sudo rc-update -u
# SysV
sudo update-rc.d -f plymouth remove
sudo update-rc.d -f plymouth-log remove
ولی با انجام تست های مجدد، فهمیدم که تنها دو تا از این دستورات مؤثر بوده است و نیاز به اجرای بقیه دستورات برای رفع این خطا وجود ندارد.دو تا دستور مؤثر عبارت از:
sudo update-rc.d -f plymouth remove
sudo update-rc.d -f plymouth-log remove
با اجرای این دو تا دستور بههمراه راهکار اول ، این حالت رخ می دهد:
- در هنگام boot ، صفحه plymouth نشان داده می شود. که درست است.
- در هنگام boot ، خطای مربوط به plymouth ، دیگر وجود ندارد. که درست است.
- در هنگام shutdown ، صفحه plymouth نشان داده نمی شود.این مورد حل نشد.
###############################################################
###############################################################
SysV :
بعد از نصب دبیان بهصورت Debootstrap در حالت SysV ، نه در هنگام boot و نه در هنگام shutdown ، صفحه مربوط به plymouth ظاهر نمی شود و در هنگام بوت خطای زیر داده می شود: عکس 1
!startpar: service(s) returned failure: plymouth...failed
راهکار اول:
با اضافه کردن آپشن splash به فایل etc/default/grub/ ، بهصورت زیر:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
و سپس اجرای دستور update-grub و سپس reboot کردن سیستم ، این حالت رخ می دهد:
- در هنگام boot ، صفحه plymouth نشان داده می شود. که درست است.
- در هنگام boot ، خطای مربوط به plymouth ، همچنان وجود دارد. که اشکال دارد.
- در هنگام shutdown ، صفحه plymouth نشان داده می شود. که درست است.
راهکار دوم:
برای رفع خطای
!startpar: service(s) returned failure: plymouth...failed
باز هم از این دو تا دستور استفاده کردم:
sudo update-rc.d -f plymouth remove
sudo update-rc.d -f plymouth-log remove
با اجرای این دو تا دستور بههمراه راهکار اولی ، این حالت رخ می دهد:
- در هنگام boot ، صفحه plymouth نشان داده می شود. که درست است.
- در هنگام boot ، خطای مربوط به plymouth ، دیگر وجود ندارد. که درست است.
- در هنگام shutdown ، صفحه plymouth نشان داده نمی شود.که درست نیست.
نتیجه نهایی:
در OpenRc ، با این راهکارها می شود صفحه مربوط به plymouth را در هنگام بوت نشان داده شود و خطای مربوط به plymouth حل شود ولی راهکاری پیدا نکردم که بتوانم در OpenRC ، صفحه مربوط به plymouth را در هنگام shutdown بیاورم.
در SysV بهطور کلی دو حالت مجزا پیش می آید یا :
حالت اول: صفحه مربوط به plymouth هم در boot و هم در shutdown نشان داده می شود، ولی خطای مربوط به plymouth در هنگام boot همچنان باقی می ماند.(یعنی راهکار اول)
حالت دوم: صفحه مربوط به plymouth فقط در هنگام boot نشان داده می شود ولی در هنگام shutdown نشان داده نمی شود، ولی خطای مربوط به plymouth در هنگام boot حل شد.(یعنی راهکار اول بعلاوه راهکار دوم)
که هر دو راهکار ناقص هستند.
-
با سلام مجدد،
من الان بر روی نصب دبیان بصورت Debootstrap به حالت Runit کار می کنم.
در مرحله ای از مراحل نصب می خواهم تنها وابستگی های lightdm نصب شوند و خود lightdm نصب نشود. آیا دستوری وجود دارد که بجای دستور:
apt install lightdm
بکار ببرم، بشرطی که خود lightdm نصب نشود و تنها وابستگی های مرتبط با بسته lightdm نصب گردند؟
-
خودِ APT سوییچ «فقط وابستگیها را نصب کن ولی خود بسته را نصب نکن» ندارد.
یک اسکریپت بش براتون آماده کردم که این بسته lightdm رو فقط وابستگی هاش رو نصب میکنه .
خود اسکریپت رو میتونید ویرایش کنید و خط زیر رو تغییر بدید برای هر بسته ای که میخواید :
pkg="lightdm"اسکریپت رو اجرایی کنید :
chmod +x deps-only.txt
./deps-only.txt
-
بازهم ممنون آقای Chappie ، خیلی زحمت کشیدید.
البته بهتر دیدم که توضیحی در این باره بدهم. که چرا این سؤال را اصلاً مطرح کردم.
دبیان را با هم بصورت Debootstrap نصب کردیم، دفعات قبل systemd و SysV و OpenRC را نصب کرده بودیم، ایندفعه خواستم Runit را نصب کنم.
مثل همیشه می خواستم ار lightdm بهعنوان display manager استفاده کنم ولی بعد از اتمام نصب و reboot کردن، بعد از صفحه گراب و بعد از لاگ های بوت، در جایی که بایستی وارد صفحه lightdm برای لاگین کاربر می شد، اینکار صورت نگرفت. از gdm3 و همچنین sddm استفاده کردم ولی مشکل همچنان پابرجا بود یا وارد صفحه لاگین کاربر نمی شد، یا خود صفحه لاگین دچار مشکل می شد مثلاً کمرنگ بود یا گزینه ها عمل نمی کرد یا به سختی وارد صفحه کاربر می شد و عمل لود بسختی انجام می شد. دقیقاً نمی دانم مشکل از کجا بود.
ولی وقتی از xdm یا slim یا dwm استفاده می کردم، می شود گفت مشکلی نبود.
ولی وابستگی های نصب lightdm شکل 1 با xdm شکل 2 یا slim شکل 3 خیلی متفاوت بود.
مثلاً xdm و یا slim ، بسته های وابستگی کافی با بسته خودشان برای نصب ندارند تا محیط گرافیکی نصب بشود.
بنابراین فکری به ذهنم رسید که lightdm را با تمام وابستگی ها یش ولی بدون خودش را نصب کنم ولی بعد بیایم xdm را نصب کنم.
راهکار شما در سطح خودش واقعاً بی نظیر است، ولی برای اینکه من در راهنمای نصب استفاده کنم تا دیگران دبیان را بهصورت debootstrap و برای Runit استفاده کند با توجه به راهنماهای قبلی ام برای init های دیگر جور در نمی آمد، البته مشکل از شما نبود و من در ارسالی قبلی دقیق توضیح نداده بودم که چه مشکلی دارم.
بنابراین بنظرم فکر دیگری آمد که علاوه بر xdm بیایم و بسته xserver-xorg (شکل 4) را نصب کنم، که خوشبختانه با این بسته کلی از وابستگی های موردنظرم از lightdm نصب شد و دیگر نیازی به استفاده از lightdm نبود.
بهر حال از وقتی که گذاشتید سپاسگزارم.
-
آقای Ian LeCorbeau ، چند سال قبل برای نصب Runit (و سایر init ها) نوشته ای داشتند، البته فکر کنم در آن نوشته منظورشان این بود که سیستم دبیان حاوی systemd را به Runit تبدیل کنند، هر چند که ایشان می گویند بهترین راه استفاده از Debootstrap برای اینکار است نه این نوع روش، بهر حال نوشته ایشان در قسمت Runit به این صورت بود:
# Runit
Switching to Runit requires a few more steps. Take note that this is the one I have tested the least, which is ironic considering it’s the first one I ever tried (during the Buster days).
$ sudo apt install runit-systemd
(this is a transitional package meant to make the switch easier, I'm not sure this step is still required, but I did it anyway to avoid trouble)
$ sudo reboot
$ sudo apt install runit runit-run
(You will be told that what you're about to do can cause problems, and in order to continue, type 'Yes, do as I say!' (without the quotes)).
$ sudo reboot
$ sudo apt install elogind libpam-elogind orphan-sysvinit-scripts systemctl procps
$ sudo reboot
You can now uninstall runit-systemd.
$ sudo apt remove runit-systemd
در آنجا برای نصب Runit ، دو بسته را معرفی کرده :
runit و runit-run
البته این نوشتجاتش مال چند سال قبل است، و فکر کنم که تمرکز ایشان در اینگونه موارد، اگر اشتباه نکرده باشم، بیشتر روی Debootstrap و sysvinit می باشد.
در هر صورت ،از این دو بسته من با نصب بسته runit-run موافق نبودم بهدلیل زیر:
runit is a collection of tools to provide system-wide service supervision
and to manage services. Contrary to sysv init, it not only cares about
starting and stopping services, but also supervises the service daemons
while they are running. Amongst other things, it provides a reliable
interface to send signals to service daemons without the need for pid-files,
and a log facility with automatic log file rotation and disk space limits.
runit service supervision can run under sysv init, systemd or replace the init
system completely. Complete init replacement is provided by 'runit-init'
package. Users that want to take advantage of runit supervision under systemd
or sysv init can directly install the 'runit-run' package.
runit مجموعهای از ابزارها برای ارائه نظارت بر سرویس در سطح سیستم و مدیریت سرویسها است. برخلاف sysv init، این ابزار نه تنها به شروع و توقف سرویسها اهمیت میدهد، بلکه بر سرویسهای سرویس نیز در حین اجرا نظارت میکند. در میان چیزهای دیگر، یک رابط قابل اعتماد برای ارسال سیگنال به سرویسهای سرویس بدون نیاز به فایلهای pid و یک امکان ثبت وقایع با چرخش خودکار فایلهای گزارش و محدودیتهای فضای دیسک فراهم میکند.
نظارت بر سرویس runit میتواند تحت sysv init، systemd اجرا شود یا سیستم init را به طور کامل جایگزین کند. جایگزینی کامل init توسط بسته 'runit-init' ارائه میشود. کاربرانی که میخواهند از نظارت runit تحت systemd یا sysv init بهرهمند شوند، میتوانند مستقیماً بسته 'runit-run' را نصب کنند.
همانطور که اینجا نوشته من می خواستم که Runit بهطور مستقل کار کند و نه به systemd وابسته باشد و نه به sysv init .
بنابراین من بایستی بسته runit-init را نصب می کردم.
و اگر شما بخواهید از نظارت runit تحت systemd یا sysv init بهرهمند شوید، میتوانید مستقیماً بسته 'runit-run' را نصب کنید.
من علاوه بر بسته runit-init ، بسته runit-services را نصب کردم.
بسته runit-services :
runit is a replacement for SysV-init and other init schemes. It runs on
Debian GNU/Linux, *BSD, MacOSX, and Solaris, and may be easily adapted
to other Unix operating systems. runit implements a simple three-stage
concept. Stage 1 performs the system's one-time initialization tasks.
Stage 2 starts the system's uptime services (via the runsvdir program).
Stage 3 handles the tasks necessary to shutdown and halt or reboot.
This package contains services directories for a collection of services
available in Debian, to have them run under runit service supervision
instead of sysvinit or systemd. Services directories are installed under
/usr/share/runit/sv/. Local copies of services can be maintained easily
in /etc/sv/ with the cpsv utility that can be used to copy, inspect and
update runscripts in /etc/sv/ after the first installation.
runit جایگزینی برای SysV-init و سایر طرحهای init است. این برنامه روی Debian GNU/Linux، *BSD، MacOSX و Solaris اجرا میشود و به راحتی با سایر سیستم عاملهای یونیکس سازگار میشود. runit یک مفهوم سه مرحلهای ساده را پیادهسازی میکند. مرحله 1 وظایف اولیهسازی یکباره سیستم را انجام میدهد. مرحله 2 سرویسهای uptime سیستم را (از طریق برنامه runsvdir) شروع میکند. مرحله 3 وظایف لازم برای خاموش کردن و متوقف کردن یا راهاندازی مجدد را انجام میدهد.
این بسته شامل دایرکتوریهای سرویس برای مجموعهای از سرویسهای موجود در Debian است تا آنها را تحت نظارت سرویس runit به جای sysvinit یا systemd اجرا کند. دایرکتوریهای سرویس در /usr/share/runit/sv/ نصب میشوند. کپیهای محلی سرویسها را میتوان به راحتی در /etc/sv/ با ابزار cpsv که میتواند برای کپی، بررسی و بهروزرسانی اسکریپتهای اجرا در /etc/sv/ پس از اولین نصب استفاده شود، نگهداری کرد.
###############################################
در مورد استفاده از lightdm بهعنوان display manager با مشکل مواجه شدم ولی بهطور تجربی متوجه شدم xdm سازگاری خوبی با Runit دارد، بنابراین از این display manager استفاده کردم.
اگر xdm را دوست ندارید می توانید از slim یا dwm استفاده کنید.
###############################################
برخلاف SysV و OoenRC در Runit دیگر نیازی بهکارگیری دستور mkdir /etc/inittab.d نبود.
###############################################
برخلاف SysV و OoenRC در Runit ، در هنگام نصب با بهکارگیری دستور umount /dev/sda3 ، کمی با مشکل target is busy مواجه شدم (عکس 1)، با بهکارگیری آپشن l- این مشکل حل شد، یعنی بهصورت:
root@debian:~# umount -l /dev/sda3
###############################################
برخلاف SysV و OoenRC در Runit ، در هنگام بوت سیستم نصب شده دیگر خطایی از جانب plymouth و apparmor دیگر وجود نداشت.
ولی من بالشخصه از plymouth استفاده نمی کنم، بیشتر دوست دارم، ببینم که لاگ های boot و shutdown چه می گویند.
و اینهمه برای plymouth و apparmor در ارسالی های قبلی برای init های دیگر کار کردم، می خواستم دوستانی که مایل به استفاده از این ها باشند، سیستم بی نقص تری داشته باشند.
###############################################
عکس 2 و 3 از بوت
عکس 4 و 5 مربوط به محیط کاری
عکس 6 و 7 مربوط به shutdown سیستم، که بهعلت سرعت بالا در این init ، همین را هم به زور گرفتم.
-
ادامه عکس ها.
-
خلاصه این موضوع در یکجا با ویرایش :
Install+Debian 13+Debootstrap+systemd+minimal+the Arch way :
#######################Install+Debian 13+Debootstrap+systemd+minimal+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
root@debian:~# reboot
########################################################################################################################
########################################################################################################################
#################################################################################################################
Install+Debian 13+Debootstrap+SysV+MATE Desktop+the Arch way :
#######################Install+Debian 13+Debootstrap+SysV+MATE Desktop+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.#######
###########################################################################################################
#####I am installing the Mate desktop here, but you can install another desktop according to your taste.###
###########################################################################################################
#####I am installing the lightdm display manager here, but you can install another display manager#########
#####according to your taste.##############################################################################
###########################################################################################################
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 sysvinit-core sysv-rc orphan-sysvinit-scripts elogind libpam-elogind
root@debian:/# apt-mark hold systemd systemd-sysv libpam-systemd
root@norouzi:~# cat > /etc/apt/preferences.d/nosystemd << "EOF"
> Package: systemd
> Pin: release *
> Pin-Priority: -1
>
> Package: systemd-sysv
> Pin: release *
> Pin-Priority: -1
>
> Package: libpam-systemd
> Pin: release *
> Pin-Priority: -1
> EOF
root@debian:/#
root@norouzi:~# apt-mark showhold
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" > /etc/hosts
root@debian:/# echo "127.0.1.1 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:/# mkdir /etc/inittab.d
root@debian:/# apt install firmware-linux
root@debian:/# apt install lightdm
root@debian:/# apt install mate-desktop-environment
root@debian:/# apt install mate-desktop-environment-extras
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
root@debian:~# reboot
###########################################################################################################
#####After rebooting, if you do not see the Plymouth page during boot and shutdown, follow these steps#####
#####to resolve the issue:#################################################################################
#####add the splash option to the file /etc/default/grub , as follows: ##################################
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
##### then ##############################
root@debian:~# update-grub
root@debian:~# reboot
########################################################################################################################
########################################################################################################################
#################################################################################################################
Install+Debian 13+Debootstrap+OpenRC+MATE Desktop+the Arch way :
#######################Install+Debian 13+Debootstrap+OpenRC+MATE Desktop+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.#######
###########################################################################################################
#####I am installing the Mate desktop here, but you can install another desktop according to your taste.###
###########################################################################################################
#####I am installing the lightdm display manager here, but you can install another display manager#########
#####according to your taste.##############################################################################
###########################################################################################################
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 openrc sysvinit-core orphan-sysvinit-scripts elogind libpam-elogind
root@debian:/# apt-mark hold systemd systemd-sysv libpam-systemd
root@norouzi:~# cat > /etc/apt/preferences.d/nosystemd << "EOF"
> Package: systemd
> Pin: release *
> Pin-Priority: -1
>
> Package: systemd-sysv
> Pin: release *
> Pin-Priority: -1
>
> Package: libpam-systemd
> Pin: release *
> Pin-Priority: -1
> EOF
root@debian:/#
root@norouzi:~# apt-mark showhold
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" > /etc/hosts
root@debian:/# echo "127.0.1.1 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:/# mkdir /etc/inittab.d
root@debian:/# apt install firmware-linux
root@debian:/# apt install lightdm
root@debian:/# apt install mate-desktop-environment
root@debian:/# apt install mate-desktop-environment-extras
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
root@debian:~# reboot
###########################################################################################################
##### After rebooting, if you see the error "ERROR: plymouth failed to start. " in the boot log.###########
##### Method 1: Remove the plymouth package ###############################################################
###########################################################################################################
##### Method 2:############################################################################################
##### In the second method, you will not remove the plymouth package, but you will make further############
#####adjustments until the plymouth-related error is resolved.#############################################
root@debian:~# sudo update-rc.d -f plymouth remove
root@debian:~# sudo update-rc.d -f plymouth-log remove
######And add the splash option to the file /etc/default/grub , as follows: #############################
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
##### then ##############################
root@debian:~# update-grub
root@debian:~# reboot
########################################################################################################################
########################################################################################################################
#################################################################################################################
Install+Debian 13+Debootstrap+Runit+MATE Desktop+the Arch way :
#######################Install+Debian 13+Debootstrap+Runit+MATE Desktop+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.#######
###########################################################################################################
#####I am installing the Mate desktop here, but you can install another desktop according to your taste.###
###########################################################################################################
#####I am installing the xdm display manager here, but you can install another display manager#############
#####according to your taste.##############################################################################
###########################################################################################################
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 runit-init runit-services orphan-sysvinit-scripts elogind libpam-elogind
root@debian:/# apt-mark hold systemd systemd-sysv libpam-systemd
root@norouzi:~# cat > /etc/apt/preferences.d/nosystemd << "EOF"
> Package: systemd
> Pin: release *
> Pin-Priority: -1
>
> Package: systemd-sysv
> Pin: release *
> Pin-Priority: -1
>
> Package: libpam-systemd
> Pin: release *
> Pin-Priority: -1
> EOF
root@debian:/#
root@norouzi:~# apt-mark showhold
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" > /etc/hosts
root@debian:/# echo "127.0.1.1 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 firmware-linux
root@debian:/# apt install xdm
root@debian:/# apt install xserver-xorg
root@debian:/# apt install mate-desktop-environment
root@debian:/# apt install mate-desktop-environment-extras
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 -l /dev/sda3
root@debian:~# reboot
###########################################################################################################
#####After rebooting, if you do not see the Plymouth page during boot and shutdown, follow these steps#####
#####to resolve the issue:#################################################################################
#####add the splash option to the file /etc/default/grub , as follows: ##################################
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
##### then ##############################
root@debian:~# update-grub
root@debian:~# reboot
########################################################################################################################
########################################################################################################################
پایان
-
خیلی موضوع خوب و جالبی شد سپاس از پیگیری و مشارکت شما.
اگه بتونید خروجی را در قالب مارکداون یا ویکی دربیارید بسیار مفیدتر و خواناتر خواهد شد.
-
اشکال زدایی راهنمای نصب:
شماره 1 :
مختص: SysV و OpenRC و Runit
شرح مشکل:
آقای Ian LeCorbeau ، در راهنمای نصبش در قسمت Networking، از بسته های ifupdown و wpasupplicant استفاده کرد. من هم بهجای این بسته ها از بسته network-manager استفاده می کردم.
ولی هنگامیکه وارد میزکارم شدم متوجه شدم در نوار پانل، در ناحیه اعلان ها، اپلت شبکه وجود ندارد.( Network applet missing from notification area )
(به زبان ساده در پانل نشانگری که نشاندهنده اتصال یا عدم اتصال به اینترنت باشد، نبود.)
راه حل:
بهجای بسته network-manager از بسته network-manger-gnome استفاده کردم. که با نصب این بسته، چون دارای بسته های وابستگی کامل تری است، مشکل حل شد و اپلت شبکه در ناحیه اعلان ها در پانل نشان داده شد.
این راه حل به راهنمای نصب اضافه گردید.
###################################################################################################
شماره 2 :
مختص: SysV و OpenRC و Runit
شرح مشکل:
نداشتن صدا و عدم وجود صدای خروجی.
راه حل:
با حذف بسته pipewire-alsa مشکل مربوط به نبود صدا حل شد.
این راه حل به راهنمای نصب اضافه گردید.
###################################################################################################
شماره 3 :
مختص: Runit
شرح مشکل:
در هنگام بوت در Runit ، هشدار زیر در لاگهای بوت نشان داده می شد: (شکل 1)
/etc/runit/1: 20: /usr/bin/wtmpdb: not found
warning: failed to write a wtmpdb boot entry
راه حل:
با نصب بسته wtmpdb ، دیگر این هشدار در زمان بوت نشان داده نشد. (شکل 2)
این راه حل به راهنمای نصب اضافه گردید.
###################################################################################################
شماره 4 :
مختص: Runit
شرح مشکل:
در هنگام بوت در Runit ، خطاهای زیر نشان داده می شد: (شکل 1)
saned[1325]: do_bindings: [1] bind failed: Address already in use
saned[1327]: saned_avahi: failed to create client: Daemon not running
راه حل:
اگر شما از اسکنر استفاده نمی کنید، با حذف بسته sane-utils ، دیگر این خطاها در زمان بوت نشان داده نخواهد شد. (شکل 2)
این راه حل به راهنمای نصب اضافه گردید.
###################################################################################################
شماره 5 :
مختص: SysV و OpenRC
شرح مشکل:
در هنگام خاموش کردن، در لاگهای مرتبط با خاموش شدن سیستم، خطاهای زیر قابل مشاهده اند: (عکس های 3 و 4 )
ModemManager[1601]: <msg> [base-manager] couldn't check support for device /sys/devices/pci000.............
ModemManager[1601]: <wrn> couldn't acquire the 'org.freedesktop.ModemManager1" service name
راه حل:
با حذف modemmanager ، در زمان خاموش شدن سیستم دیگر این خطاها نشان داده نشد.
این راه حل به راهنمای نصب اضافه گردید.
###################################################################################################
نکته اضافی:
بعد از نصب دبیان بهصورتDebootstrap ، اگر در هنگام اولین ورود به سیستم با هشدار و خطاهای زیر:
Creating compatibility symlink from /etc/mtab to /proc/mounts. ... (warning).
Setting up console font and keymap...WARNING: Unknown X keysym "none"
WARNING: Unknown X keysym "none"
WARNING: Unknown X keysym "none"
WARNING: Unknown X keysym "none"
WARNING: Unknown X keysym "none"
در لاگ های بوت مواجه شدید، نیازی به هیچ اقدامی از طرف شما نیست.
دفعه بعد که به سیستمتان وارد خواهید شد این ها دیگر نخواهد بود.
اگر به هر عنوان هشدار اول در بوت های بعدی حل نشد، از این دستور استفاده کنید:
# ln -s /proc/mounts /etc/mtab
###################################################################################################
نکته اضافی:
روشی برای دیدن لاگ های بوت:
# cat /var/log/boot.log
###################################################################################################
نکته اضافی:
از ما بین SysV و OpenRC و Runit ،
امتحانی که من کردم نشان داد کهRunit دارای سرعت بالاتری در بوت و خاموشی و ورود به صفحه کاربری بود.
###################################################################################################
نکته اضافی:
پنجره های محاوره ای برای گرفتن پسورد برای ورود به برنامه هایی مانند timeshift و synaptic ، که در عکس های 5 و 6 مشاهده می کنید، چندان به دلم ننشست، مانند پنجره هایی که قبلاً می دیدم نبود.
در ضمن با وارد کردن پسورد در صفحه لاگین برای ورود به حساب کاربری، در حالت SysV ، حدود 40 ثانیه طول می کشید تا وارد صفحه کاربر بشوم.
با حذف بسته ukui-polkit ، شکل پنجره های محاوره ای برای گرفتن پسورد برای ورود به برنامه هایی مانند timeshift و synaptic ، همانطور که در شکل های 7 و 8 می بینید، به شکل پنجره های همیشگی و آشنایم تبدیل شدند.
در ضمن اینبار با وارد کردن پسورد در صفحه لاگین برای ورود به حساب کاربری، در حالت SysV ، حدود 14 ثانیه طول می کشید تا وارد صفحه کاربر بشوم.
###################################################################################################
-
ادامه عکس ها:
-
Install+Debian 13+Debootstrap+Systemd+Minimal+The Arch way
###########################################################################################################
#######################Install+Debian 13+Debootstrap+Systemd+Minimal+The Arch way##########################
###########################################################################################################
##### To install Debian as Debootstrap, use one of the live Debian distributions.##########################
###########################################################################################################
##### 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 #######################
###########################################################################################################
##### 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.##########################################################################
###########################################################################################################
##### 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-gnome
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
root@debian:~# reboot
########################################################################################################################
########################################################################################################################
#####################################################################################
Install+Debian 13+Debootstrap+SysV+MATE Desktop+The Arch way
###########################################################################################################
#######################Install+Debian 13+Debootstrap+SysV+MATE Desktop+The Arch way########################
###########################################################################################################
##### To install Debian as Debootstrap, use one of the live Debian distributions.##########################
###########################################################################################################
##### 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 #######################
###########################################################################################################
##### 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.#######
###########################################################################################################
#####I am installing the Mate desktop here, but you can install another desktop according to your taste.###
###########################################################################################################
#####I am installing the lightdm display manager here, but you can install another display manager#########
#####according to your taste.##############################################################################
###########################################################################################################
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 sysvinit-core sysv-rc orphan-sysvinit-scripts elogind libpam-elogind
root@debian:/# apt-mark hold systemd systemd-sysv libpam-systemd
root@norouzi:~# cat > /etc/apt/preferences.d/nosystemd << "EOF"
> Package: systemd
> Pin: release *
> Pin-Priority: -1
>
> Package: systemd-sysv
> Pin: release *
> Pin-Priority: -1
>
> Package: libpam-systemd
> Pin: release *
> Pin-Priority: -1
> EOF
root@debian:/#
root@norouzi:~# apt-mark showhold
root@debian:/# apt install linux-image-amd64
root@debian:/# dpkg-reconfigure tzdata
root@debian:/# apt install network-manager-gnome
root@debian:/# echo "yourhostname" > /etc/hostname
root@debian:/# echo "127.0.0.1 localhost" > /etc/hosts
root@debian:/# echo "127.0.1.1 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 grub-efi-amd64
root@debian:/# grub-install --target=x86_64-efi --efi-directory=/boot/efi
root@debian:/# update-grub
root@debian:/# apt install firmware-linux
root@debian:/# apt install mate-desktop-environment
root@debian:/# apt install mate-desktop-environment-extras
root@debian:/# apt install lightdm
root@debian:/# mkdir /etc/inittab.d
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
root@debian:~# reboot
###########################################################################################################
###########################################################################################################
#####After rebooting, if you do not see the Plymouth page during boot and shutdown, follow these steps#####
#####to resolve the issue:#################################################################################
#####add the splash option to the file /etc/default/grub , as follows: ##################################
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
##### then ##############################
username@hostname:~$ sudo update-grub
username@hostname:~$ sudo reboot
###########################################################################################################
###########################################################################################################
#####After rebooting,if you have no output sound and no sound , just run the following commands: ##########
username@hostname:~$ sudo apt purge pipewire-alsa --auto-remove
##### then ##############################
username@hostname:~$ sudo reboot
###########################################################################################################
###########################################################################################################
#####After rebooting,If you see the following errors in the related logs when shutting down the system: ###
##### "ModemManager[1601]: <msg> [base-manager] couldn't check support for device /sys/devices/pci000...."#
##### "ModemManager[1601]: <wrn> couldn't acquire the org.freedesktop.ModemManager1 service name...."######
################################## just run the following commands: #######################################
username@hostname:~$ sudo apt purge modemmanager --auto-remove
##### then ##############################
username@hostname:~$ sudo reboot
########################################################################################################################
########################################################################################################################
#####################################################################################
Install+Debian 13+Debootstrap+OpenRC+MATE Desktop+The Arch way
###########################################################################################################
#######################Install+Debian 13+Debootstrap+OpenRC+MATE Desktop+The Arch way######################
###########################################################################################################
##### To install Debian as Debootstrap, use one of the live Debian distributions.##########################
###########################################################################################################
##### 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 #######################
###########################################################################################################
##### 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.#######
###########################################################################################################
#####I am installing the Mate desktop here, but you can install another desktop according to your taste.###
###########################################################################################################
#####I am installing the lightdm display manager here, but you can install another display manager#########
#####according to your taste.##############################################################################
###########################################################################################################
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 openrc sysvinit-core orphan-sysvinit-scripts elogind libpam-elogind
root@debian:/# apt-mark hold systemd systemd-sysv libpam-systemd
root@norouzi:~# cat > /etc/apt/preferences.d/nosystemd << "EOF"
> Package: systemd
> Pin: release *
> Pin-Priority: -1
>
> Package: systemd-sysv
> Pin: release *
> Pin-Priority: -1
>
> Package: libpam-systemd
> Pin: release *
> Pin-Priority: -1
> EOF
root@debian:/#
root@norouzi:~# apt-mark showhold
root@debian:/# apt install linux-image-amd64
root@debian:/# dpkg-reconfigure tzdata
root@debian:/# apt install network-manager-gnome
root@debian:/# echo "yourhostname" > /etc/hostname
root@debian:/# echo "127.0.0.1 localhost" > /etc/hosts
root@debian:/# echo "127.0.1.1 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 grub-efi-amd64
root@debian:/# grub-install --target=x86_64-efi --efi-directory=/boot/efi
root@debian:/# update-grub
root@debian:/# apt install firmware-linux
root@debian:/# apt install mate-desktop-environment
root@debian:/# apt install mate-desktop-environment-extras
root@debian:/# apt install lightdm
root@debian:/# mkdir /etc/inittab.d
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
root@debian:~# reboot
###########################################################################################################
###########################################################################################################
##### After rebooting, if you see the error "ERROR: plymouth failed to start. " in the boot log.###########
##### Method 1: Remove the plymouth package ###############################################################
###########################################################################################################
##### Method 2:############################################################################################
##### In the second method, you will not remove the plymouth package, but you will make further############
#####adjustments until the plymouth-related error is resolved.#############################################
username@hostname:~$ sudo update-rc.d -f plymouth remove
username@hostname:~$ sudo update-rc.d -f plymouth-log remove
######And add the splash option to the file /etc/default/grub , as follows: #############################
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
##### then ##############################
username@hostname:~$ sudo update-grub
username@hostname:~$ sudo reboot
###########################################################################################################
###########################################################################################################
#####After rebooting,if you have no output sound and no sound , just run the following commands: ##########
username@hostname:~$ sudo apt purge pipewire-alsa --auto-remove
##### then ##############################
username@hostname:~$ sudo reboot
###########################################################################################################
###########################################################################################################
#####After rebooting,If you see the following errors in the related logs when shutting down the system: ###
##### "ModemManager[1601]: <msg> [base-manager] couldn't check support for device /sys/devices/pci000...."#
##### "ModemManager[1601]: <wrn> couldn't acquire the org.freedesktop.ModemManager1 service name...."######
################################## just run the following commands: #######################################
username@hostname:~$ sudo apt purge modemmanager --auto-remove
##### then ##############################
username@hostname:~$ sudo reboot
########################################################################################################################
########################################################################################################################
#####################################################################################
Install+Debian 13+Debootstrap+Runit+MATE Desktop+The Arch way
###########################################################################################################
#######################Install+Debian 13+Debootstrap+Runit+MATE Desktop+The Arch way#######################
###########################################################################################################
##### To install Debian as Debootstrap, use one of the live Debian distributions.##########################
###########################################################################################################
##### 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 #######################
###########################################################################################################
##### 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.#######
###########################################################################################################
#####I am installing the Mate desktop here, but you can install another desktop according to your taste.###
###########################################################################################################
#####I am installing the xdm display manager here, but you can install another display manager#############
#####according to your taste.##############################################################################
###########################################################################################################
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 runit-init runit-services orphan-sysvinit-scripts elogind libpam-elogind
root@debian:/# apt-mark hold systemd systemd-sysv libpam-systemd
root@norouzi:~# cat > /etc/apt/preferences.d/nosystemd << "EOF"
> Package: systemd
> Pin: release *
> Pin-Priority: -1
>
> Package: systemd-sysv
> Pin: release *
> Pin-Priority: -1
>
> Package: libpam-systemd
> Pin: release *
> Pin-Priority: -1
> EOF
root@debian:/#
root@norouzi:~# apt-mark showhold
root@debian:/# apt install linux-image-amd64
root@debian:/# dpkg-reconfigure tzdata
root@debian:/# apt install network-manager-gnome
root@debian:/# echo "yourhostname" > /etc/hostname
root@debian:/# echo "127.0.0.1 localhost" > /etc/hosts
root@debian:/# echo "127.0.1.1 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 grub-efi-amd64
root@debian:/# grub-install --target=x86_64-efi --efi-directory=/boot/efi
root@debian:/# update-grub
root@debian:/# apt install firmware-linux
root@debian:/# apt install mate-desktop-environment
root@debian:/# apt install mate-desktop-environment-extras
root@debian:/# apt install xdm
root@debian:/# apt install xserver-xorg
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 -l /dev/sda3
root@debian:~# reboot
###########################################################################################################
###########################################################################################################
#####After rebooting, if you do not see the Plymouth page during boot and shutdown, follow these steps#####
#####to resolve the issue:#################################################################################
#####add the splash option to the file /etc/default/grub , as follows: ##################################
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
##### then ##############################
username@hostname:~$ sudo update-grub
username@hostname:~$ sudo reboot
###########################################################################################################
###########################################################################################################
#####After rebooting,if you have no output sound and no sound , just run the following commands: ##########
username@hostname:~$ sudo apt purge pipewire-alsa --auto-remove
##### then ##############################
username@hostname:~$ sudo reboot
###########################################################################################################
###########################################################################################################
#####After rebooting, If the following warning is shown in the boot logs: #################################
##### "/etc/runit/1: 20: /usr/bin/wtmpdb: not found " #####################################################
##### "warning: failed to write a wtmpdb boot entry " #####################################################
################################## just run the following commands: #######################################
username@hostname:~$ sudo apt install wtmpdb
##### then ##############################
username@hostname:~$ sudo reboot
###########################################################################################################
###########################################################################################################
#####After rebooting, If the following warning is shown in the boot logs: #################################
##### "saned[1325] : do_bindings: [1] bind failed: Address already in use "################################
##### "saned[1327] : saned_avahi: failed to create client: Daemon not running "############################
################################## just run the following commands: #######################################
username@hostname:~$ sudo apt purge sane-utils --auto-remove
##### then ##############################
username@hostname:~$ sudo reboot
#######################################################################################################################
#######################################################################################################################