انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: نصب Debian Debootstrap  (دفعات بازدید: 9947 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 862
  • جنسیت : پسر
  • Debian 13
پاسخ : نصب Debian Debootstrap
« پاسخ #75 : 27 مهر 1404، 05:53 ب‌ظ »
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 دیگر نخواهد بود.


آفلاین Chappie

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
پاسخ : نصب Debian Debootstrap
« پاسخ #76 : 28 مهر 1404، 05:03 ب‌ظ »

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 نباشن، این پیام‌ها درون حافظهٔ کرنل ذخیره می‌شن.


What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Chappie

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
پاسخ : نصب Debian Debootstrap
« پاسخ #77 : 28 مهر 1404، 05:16 ب‌ظ »
در مورد عکس ۳ و ۴
- - -
چیزی که متوجه شدی کاملاً درسته.
- - -
وظیفهٔ اصلی 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 را اجرا یا متوقف کند،
در نتیجه هیچ پیام خطایی هم نمایش داده نمی‌شود.
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Chappie

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
پاسخ : نصب Debian Debootstrap
« پاسخ #78 : 28 مهر 1404، 05:36 ب‌ظ »
سوال :
ببینید اصلا این مسیر وجود داره
/usr/sbin/plymouthdیا به عبارت دیگر مطمئن بشید plymouth نصب هست یا نه .
dpkg -l | grep plymouth
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 862
  • جنسیت : پسر
  • Debian 13
پاسخ : نصب Debian Debootstrap
« پاسخ #79 : 28 مهر 1404، 10:00 ب‌ظ »
آقای   Chappie  ، ممنون از توضیحاتتان.

با توجه به عکس های 1 و 2 و 3 ، نمی دانم چرا همچنان خطای ERROR: plymouth failed to start را در زمان بوت می دهد.

آفلاین Chappie

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
پاسخ : نصب Debian Debootstrap
« پاسخ #80 : 28 مهر 1404، 11:02 ب‌ظ »
حذف 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
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Chappie

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
پاسخ : نصب Debian Debootstrap
« پاسخ #81 : 29 مهر 1404، 02:09 ق‌ظ »
سوال :
خروجی این دستورات رو هم برای من همینجا قرار بدید :
ps -p 1 -o pid,comm,argsls -l /sbin/initls -l /etc/rcS.d/ls -l /etc/rc2.d/cat /etc/inittab
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 862
  • جنسیت : پسر
  • Debian 13
پاسخ : نصب Debian Debootstrap
« پاسخ #82 : 29 مهر 1404، 02:09 ب‌ظ »
ممنون آقای 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 می باشد.

         

آفلاین Chappie

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
پاسخ : نصب Debian Debootstrap
« پاسخ #83 : 29 مهر 1404، 04:53 ب‌ظ »
یعنی 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
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 862
  • جنسیت : پسر
  • Debian 13
پاسخ : نصب Debian Debootstrap
« پاسخ #84 : 29 مهر 1404، 05:31 ب‌ظ »
آقای  Chappie ، ممنون از لطفتون.

ولی بعد از اجرای دستوراتی که فرموده بودید و بعد از reboot سیستم، همچنان خطای ERROR: plymouth failed to start در هنگام بوت می آید.

زیاد مهم نیست. اصلا راضی به اذیتتان نیستم.   

آفلاین Chappie

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
پاسخ : نصب Debian Debootstrap
« پاسخ #85 : 29 مهر 1404، 05:41 ب‌ظ »
شرمنده منم دیگه نمیدونم چکار کنم .
هر چی به ذهنم رسید رو گفتم .
این کارها هم برای این بود که گفتم شاید هر دو دارن اجراش میکنن و یکیش رو خاموش کنیم .
خلاصه نفهمیدم دلیل این خطا چیه , شاید دوستان ایده ای داشته باشند و کمکی کنند .
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین norouzi90

  • Hero Member
  • *
  • ارسال: 862
  • جنسیت : پسر
  • Debian 13
پاسخ : نصب Debian Debootstrap
« پاسخ #86 : 30 مهر 1404، 11:34 ب‌ظ »
می خواستم یکی از بسته ها را unhold کنم، نمیدانم چرا خطا می دهد.

آفلاین Chappie

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
پاسخ : نصب Debian Debootstrap
« پاسخ #87 : 01 آبان 1404، 01:10 ق‌ظ »
اول این فایل رو ویرایش کنید :
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   

اینجوری نباید خطا بده .
« آخرین ویرایش: 01 آبان 1404، 02:28 ق‌ظ توسط Chappie »
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Chappie

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
پاسخ : نصب Debian Debootstrap
« پاسخ #88 : 01 آبان 1404، 02:37 ق‌ظ »
این کار رو هم میتونید بکنید بعد از مثالهایی که در نوشته قبل آوردم:
فایل پین را موقتاً خالی/کامنت کن یا موقتاً جابه‌جا کن:
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 می‌دهد و نصب نمی‌شود).
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Chappie

  • Full Member
  • *
  • ارسال: 124
  • جنسیت : پسر
پاسخ : نصب Debian Debootstrap
« پاسخ #89 : 01 آبان 1404، 05:30 ق‌ظ »
خلاصه:
وقتی برای یک بسته در ‎/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
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.