Is é cuspóir an phoist seo teicníocht dífhabhtaithe a thaispeáint i debian/ubuntu a bhaineann le "an fhoinse a aimsiú" i gcomhad cumraíochta an chórais.
Sampla tástála: tar éis mórán magadh a dhéanamh ar chóip tar.gz den OS suiteáilte agus tar éis é a athchóiriú agus nuashonruithe a shuiteáil, faighimid an teachtaireacht:
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.
Sprioc: tuig cén áit ar tháinig an luach seo (U1563304817I0) agus conas é a athrú i gceart. Is é seo an chéad sampla a tháinig trasna, nach bhfuil suimiúil go háirithe ann féin, ach áisiúil chun modhanna praiticiúla oibriú le Linux a thaispeáint.
Céim uimhir 1: Cad as ar tháinig RESUME?
# cd /etc
# grep -r RESUME
initramfs-tools/conf.d/resume:RESUME=/dev/mapper/U1563304817I0-swap
Táimid go hathchúrsach (-r
) lorg tagairt don athróg seo san eolaire /etc (áit a bhfuil an chuid is mó de na cumraíochtaí). Faighimid an blúire conf.d, a úsáideann an pacáiste initramfs-tools go soiléir.
Cad as a bhfuil an blúire seo?
Tá trí rogha ann:
- Déantán draíochta (chuir duine éigin é agus rinne sé dearmad)
- Cumraigh as an bpacáiste
- Cumraíocht ginte ag roinnt script ó phacáistí córais
Déanaimis seiceáil ar Uimh. 2 (mar an ceann is simplí):
dpkg -S initramfs-tools/conf.d/resume
dpkg-query: no path found matching pattern *initramfs-tools/conf.d/resume*
dpkg -S
ligeann dúinn cuardach a dhéanamh ar bhunachar sonraí na gcomhad suiteáilte agus teacht ar an bpacáiste lena mbaineann an comhad. Seo sampla de chuardach rathúil:
dpkg -S resolv.conf
manpages: /usr/share/man/man5/resolv.conf.5.gz
systemd: /lib/systemd/resolv.conf
Fillfimid ar ár dtasc: comhad initramfs-tools/conf.d/resume
nach bhfuil suiteáilte ar an gcóras ón bpacáiste. B'fhéidir go bhfuil sé ginte i script postinst/preinst an phacáiste? Déanaimis leagan uimhir 3 a sheiceáil.
# cd /var/lib/dpkg/info/
# grep -r initramfs-tools/conf.d/resume *
initramfs-tools-core.postrm: rm -f /etc/initramfs-tools/conf.d/resume
Sa chatalóg /var/lib/dpkg/info/
tá leaganacha neamhphacáilte de gach “meitifile” de phacáistí (scripteanna suiteála/bainte, tuairiscí pacáiste, etc.). Is ionadh é, baintear an comhad seo sa phostrm (ar díshuiteáil) den phacáiste initramfs-tools-core. Breathnaímid ar a bhfuil sa phostinst... Ní dhéanfaidh aon ní a bhaineann leis an eolaire conf.d.
Breathnaímid ar na comhaid atá san áireamh sa phacáiste initramfs-tools-core
.
# dpkg -L initramfs-tools-core
...
/usr/share/initramfs-tools/hooks/resume
...
Foireann dpkg -L
ligeann duit na comhaid go léir atá ar an gcóras a fheiceáil ón bpacáiste sonraithe. Chuir mé béim ar chomhad atá suimiúil le staidéar a dhéanamh air. Taispeánann scrúdú an chomhaid conas a úsáidtear an athróg seo, ach ní insíonn sé cad as a dtagann sé.
debconf
Tharlaíonn sé go raibh an duine Déantán. Cé leis? Sula tumadh isteach sa suiteálaí, déanaimis féachaint ar bhonneagar Debian tábhachtach eile - freagraí ar cheisteanna. Gach uair a iarrann pacáiste ceist, agus i go leor cásanna nuair nach gcuireann sé ceist ach go n-úsáideann sé an rogha réamhshocraithe, déantar an cheist agus an freagra araon a thaifeadadh i mbunachar sonraí speisialta i Debian ar a dtugtar debconf. Is féidir linn breathnú ar bhunachar sonraí na bhfreagraí (agus fiú iad a shocrú roimh an bpacáiste féin a shuiteáil - debconf-set-selections
), le haghaidh seo ní mór dúinn áirgiúlacht debconf-get-selections
ón gcomhdhéanamh debconf-utils
. Ar an drochuair, ní bhfuarthas aon rud suimiúil :(debconf-get-selections |grep -i resume
ar ais folamh).
suiteálaí debian
Tá a bhunachar sonraí féin de fhreagraí ar cheisteanna ag an suiteálaí: /var/log/installer/cdebconf/questions.dat
. Ar an drochuair, níl focal faoi ár atosú freisin.
Ach tá logs in aice láimhe, lena n-áirítear. syslog, áit a bhfuil an logáil suiteála iomlán scríofa. Tá an pacáiste suiteálaí bonn luaite ann, agus air
Taobh istigh díobh is féidir linn freagra ár gceist a fháil go héasca:
resume="$(mapdevfs "$resume_devfs")"; then
...
if [ "$do_initrd" = yes ]; then
...
resumeconf=$IT_CONFDIR/resume
....
echo "RESUME=$resume" >> $resumeconf
Is áirgiúlacht é mapdevfs a bhfuil cuspóir soiléir aige, agus is é an fheidhm a bhfuil suim againn inti get_resume_partition
, a léann /proc/babhtálacha agus a roghnaíonn an ceann is mó ann. Tagann babhtáil ó partman.
An freagra ar ár dtasc tástála: cruthaíonn an suiteálaí an comhad in /target tráth na suiteála, i.e. táimid ag caint faoi-aitheanta go maith, ach Déantán. Níl aon duine nó aon rud sna pacáistí atá sa chóras atá ann cheana féin ar féidir leo an comhad seo a athrú.
Achoimre
- Is iad dpkg agus debconf na príomh-mhodhanna chun soláthraithe comhad a aimsiú.
- Ligeann cuardach in /var/lib/dpkg/info duit oibríochtaí ar chomhaid a fheiceáil le linn na céime suiteála.
- Is féidir leis an suiteálaí comhaid déantán a chruthú nach n-athróidh duine ar bith (seachas an t-úsáideoir), agus is féidir é seo a fheiceáil sa chód suiteálaí.
Foinse: will.com