دا ترتیب له کوم ځای څخه راځي؟ [دیبیان/اوبنټو]

د دې پوسټ هدف د سیسټم تنظیم کولو فایل کې د "سرچینې موندلو" پورې اړوند په debian/ubuntu کې د ډیبګ کولو تخنیک ښودل دي.

د ازموینې مثال: د نصب شوي OS د tar.gz کاپي څخه د ډیرې ټوکې کولو وروسته او د هغې له بحالولو او تازه معلوماتو نصبولو وروسته ، موږ پیغام ترلاسه کوو:

update-initramfs: Generating /boot/initrd.img-4.15.0-54-generic
W: initramfs-tools configuration sets RESUME=/dev/mapper/U1563304817I0-swap
W: but no matching swap device is available.
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/foobar-swap)
I: Set the RESUME variable to override this.

هدف: پوه شئ چې دا ارزښت (U1563304817I0) له کوم ځای څخه راغلی او څنګه یې په سمه توګه بدل کړئ. دا لومړۍ بیلګه ده چې منځ ته راغلې، په ځانګړې توګه په زړه پورې نه ده، مګر د لینوکس سره د کار کولو عملي میتودونو ښودلو لپاره مناسب دی..

مرحله نمبر 1: RESUME له کوم ځای څخه راغلی؟

# cd /etc
# grep -r RESUME
initramfs-tools/conf.d/resume:RESUME=/dev/mapper/U1563304817I0-swap

موږ په تکرار سره (-r) د دې متغیر ذکر په /etc ډایرکټر کې وګورئ (چیرې چې ډیری تشکیلات دي). موږ د conf.d snippet پیدا کوو، کوم چې په واضح ډول د initramfs-tools کڅوړې لخوا کارول کیږي.

دا ټوټه له کوم ځای څخه ده؟

دلته درې اختیارونه شتون لري:

  1. د جادو اثار (څوک یې واچول او هیر یې کړل)
  2. د کڅوړې څخه ترتیب
  3. ترتیب د سیسټم کڅوړو څخه د ځینې سکریپټ لخوا رامینځته شوی

راځئ چې نمبر 2 وګورو (د ساده په توګه):

 dpkg -S initramfs-tools/conf.d/resume
dpkg-query: no path found matching pattern *initramfs-tools/conf.d/resume*

dpkg -S موږ ته اجازه راکوي چې د نصب شوي فایلونو ډیټابیس وپلټئ او ومومئ چې کوم بسته فایل پورې اړه لري. دلته د بریالي لټون یوه بیلګه ده:

dpkg -S resolv.conf
manpages: /usr/share/man/man5/resolv.conf.5.gz
systemd: /lib/systemd/resolv.conf

راځئ چې بیرته خپل کار ته راستون شو: فایل initramfs-tools/conf.d/resume د کڅوړې څخه په سیسټم کې ندي نصب شوي. شاید دا د بسته بندۍ پوسټینسټ/پرینسټ سکریپټ کې رامینځته شوی وي؟ راځئ چې د نسخه 3 شمیره وګورو.

# cd /var/lib/dpkg/info/
# grep -r initramfs-tools/conf.d/resume *
initramfs-tools-core.postrm:    rm -f /etc/initramfs-tools/conf.d/resume

په کتالګ کې /var/lib/dpkg/info/ د بسته بندۍ د ټولو "میټا فایلونو" نه پیکه شوي نسخې شتون لري (نصب کول/د لرې کولو سکریپټونه، د بسته بندي توضیحات، او نور). په حیرانتیا سره، دا فایل د initramfs-tools-core کڅوړې پوسټرم (په غیر نصبولو) کې لرې شوی. راځئ چې د دې پوسټ مینځپانګې ته وګورو ... د conf.d لارښود سره هیڅ تړاو نلري.

راځئ چې په کڅوړه کې شامل فایلونه وګورو initramfs-tools-core.

# dpkg -L initramfs-tools-core
...
/usr/share/initramfs-tools/hooks/resume
...

ټیم dpkg -L تاسو ته اجازه درکوي ټول هغه فایلونه وګورئ چې په سیسټم کې دي له ټاکل شوي کڅوړې څخه. ما یو فایل روښانه کړی چې د مطالعې لپاره په زړه پوری دی. د فایل معاینه کول ښیې چې دا متغیر څنګه کارول کیږي، مګر دا نه وايي چې له کوم ځای څخه راځي.

debconf

دا معلومه شوه چې دا د یو چا هنر دی. د چا؟ مخکې لدې چې انسټالر ته لاړشئ ، راځئ چې د دیبیان بل مهم زیربنا ته یو نظر وګورو - پوښتنو ته ځوابونه. هرکله چې یوه بسته پوښتنه کوي، او په ډیری مواردو کې کله چې دا پوښتنه نه کوي مګر د ډیفالټ اختیار کاروي، پوښتنه او ځواب دواړه په ډیبیان کې د debconf په نوم ځانګړي ډیټابیس کې ثبت شوي. موږ کولی شو د ځوابونو ډیټابیس وګورو (او حتی د کڅوړې نصبولو دمخه یې تنظیم کړئ - debconf-set-selections)، د دې لپاره موږ یو افادیت ته اړتیا لرو debconf-get-selections له ترکیب څخه debconf-utils. له بده مرغه، په زړه پورې هیڅ ونه موندل شو :(debconf-get-selections |grep -i resume خالي راستون شو).

ډیبیان - لګوونکی

انسټالر د پوښتنو ځوابونو خپل ډیټابیس لري: /var/log/installer/cdebconf/questions.dat. له بده مرغه، زموږ د بیا پیلولو په اړه یوه کلمه هم نشته.
مګر نږدې لاګونه شتون لري، په شمول. syslog، چیرته چې د نصب کولو ټوله لاګ لیکل شوی. د بیس انسټالر کڅوړه دلته ذکر شوې، او په هغې کې پاڼه موږ کولی شو خام ته لینک وګورو.

د دوی دننه موږ کولی شو په اسانۍ سره زموږ د پوښتنې ځواب ومومئ:

  resume="$(mapdevfs "$resume_devfs")"; then
...
    if [ "$do_initrd" = yes ]; then
     ...
            resumeconf=$IT_CONFDIR/resume
....
                echo "RESUME=$resume" >> $resumeconf

mapdevfs د روښانه هدف سره یو کار دی، او هغه فعالیت چې موږ یې لیوالتیا لرو get_resume_partition، کوم چې /proc/swaps لولي او هلته ترټولو لوی غوره کوي. سویپ د پارټ مین څخه راځي.

زموږ د ازموینې دندې ته ځواب: فایل د نصب کولو په وخت کې / هدف کې د نصب کونکي لخوا رامینځته شوی ، د مثال په توګه. موږ د ښه پیژندل شوي، مګر یو هنر په اړه خبرې کوو. په سیسټم کې په موجوده کڅوړو کې هیڅ څوک یا هیڅ شی شتون نلري چې دا فایل بدل کړي.

لنډیز لپاره

  1. dpkg او debconf د فایل چمتو کونکو موندلو اصلي میتودونه دي.
  2. په /var/lib/dpkg/info کې لټون کول تاسو ته اجازه درکوي د نصب کولو مرحلې په جریان کې د فایلونو عملیات وګورئ.
  3. انسټالر کولی شي هنري فایلونه رامینځته کړي چې بیا هیڅکله د چا لخوا نه بدلیږي (پرته له کارونکي) ، او دا د انسټالر کوډ کې لیدل کیدی شي.

سرچینه: www.habr.com

Add a comment