Fe ddywedaf wrthych am sefyllfa ddoniol a ddigwyddodd i mi, a sut i ddod yn gyfrannwr i brosiect enwog.
Ddim yn bell yn Γ΄l roeddwn i'n tincian gyda syniad: cychwyn Linux yn uniongyrchol o UEFI ...
Nid yw'r syniad yn newydd ac mae nifer o lawlyfrau ar y pwnc hwn. Gallwch weld un ohonyn nhw
A dweud y gwir, mae fy ymdrechion hirsefydlog i ddatrys y mater hwn wedi arwain at ffurfioli'n llwyr
Hanfod UEFI-Boot yw bod y rhaniad ESP (Rhaniad System EFI) wedi'i gyfuno Γ’'r cyfeiriadur /boot. Y rhai. mae pob cnewyllyn a delwedd bootstrap (initrd) wedi'u lleoli ar yr un rhaniad y gall UEFI lansio ffeiliau gweithredadwy ohono ac, yn benodol, lansio llwythwyr cychwyn system. Ond mae'r cnewyllyn Linux ei hun mewn llawer o ddosbarthiadau eisoes wedi'i ymgynnull gyda'r opsiwn UEFISTUB, sy'n caniatΓ‘u i'r cnewyllyn ei hun gael ei lansio o UEFI.
Mae gan yr ateb hwn un eiliad annymunol - mae'r rhaniad ESP wedi'i fformatio yn FAT32, lle mae'n amhosibl creu cysylltiadau caled (y mae'r system yn eu creu yn rheolaidd wrth ddiweddaru'r initrd). Ac nid oes dim byd arbennig o droseddol am hyn, ond nid yw gweld rhybuddion system wrth ddiweddaru cydrannau cnewyllyn yn ddymunol iawn ...
Mae yna ffordd arall.
Gall rheolwr cychwyn UEFI (yr un un lle mae angen i chi gofrestru'r cychwynnydd OS), yn ogystal Γ’ llwythwyr cychwyn / cnewyllyn Linux, hefyd lwytho gyrwyr. Felly gallwch chi lwytho'r gyrrwr ar gyfer y system ffeiliau lle mae gennych chi / cist a llwytho'r cnewyllyn yn uniongyrchol oddi yno gan ddefnyddio UEFI. Mae angen gosod y gyrrwr, wrth gwrs, yn y rhaniad ESP. Dyma'n fras beth mae llwythwyr cychwyn fel GRUB yn ei wneud. Ond yr uchafbwynt yw bod yr holl swyddogaethau GRUB a ddefnyddir yn aml eisoes yn UEFI. Yn fwy manwl gywir yn ei rheolwr llwytho i lawr. Ac i fod hyd yn oed yn fwy diflas, mae gan reolwr cist UEFI hyd yn oed mwy o alluoedd mewn rhai materion.
Mae'n ymddangos ei fod yn ddatrysiad hardd, ond mae un βONDβ (neu yn hytrach, yr oedd, ond mwy am hynny yn ddiweddarach). Y ffaith yw bod system gyrrwr UEFI yn eithaf syml. Nid oes y fath beth Γ’ gosod system ffeiliau neu gysylltu gyrrwr Γ’ dyfais benodol. Mae galwad system gyda'r enw confensiynol Map, sy'n cymryd pob gyrrwr yn ei dro ac yn ceisio ei gysylltu Γ’ phob dyfais, o leiaf addas. Ac os oedd y gyrrwr yn gallu codi'r ddyfais, yna mae mapio yn cael ei greu - cofnod cysylltu. Dyma'n union sut y dylid cychwyn y gyrrwr sydd newydd ei lwytho mewn pentwr cyffredin Γ’'r lleill i gyd. A'r cyfan sydd ei angen arnoch yw gosod un did (LOAD_OPTION_FORCE_RECONNECT) i 1 yn y cofnod cychwyn gyrrwr a bydd UEFI yn gwneud y remap byd-eang hwn ar Γ΄l ei lwytho.
Ond nid yw hyn mor hawdd i'w wneud. Nid yw'r cyfleustodau safonol efibootmgr (a ddefnyddir i ffurfweddu rheolwr dadlwytho UEFI) yn gwybod sut (neu yn hytrach, nid oedd yn gwybod sut) i osod y darn hwn. Roedd yn rhaid i mi ei osod Γ’ llaw trwy weithdrefn eithaf cymhleth a pheryglus.
Ac unwaith eto, ar Γ΄l ceisio ei wneud gyda fy nwylo, ni allwn ei sefyll a ffurfioli
Aeth amryw ddyddiau heibio, ond ni thalodd neb sylw i'm cais. Ac allan o chwilfrydedd, edrychais ar y cod ffynhonnell... fe wnes i ei fforchio, a darganfod ar fy ngliniau sut i ychwanegu'r nodwedd hon... βAr fy ngliniauβ oherwydd wnes i ddim gosod dim byd felly a golygu'r ffynhonnell cod yn uniongyrchol yn y porwr.
Dwi'n nabod C (yr iaith raglennu) yn arwynebol iawn, ond fe wnes i fraslunio datrysiad bras (copi-past yn bennaf)... ac yna meddyliais - o leiaf mae'n debyg bod gen i lawer o wallau yno (fy nghynigion yn y gorffennol i olygu rhai rhywun arall). Cwblhawyd cod C tua'r 10fed tro) Byddaf yn cyhoeddi Cais Tynnu. Wel
Ac yno Travis CI troi allan i fod ynghlwm i wirio ceisiadau tynnu. A dywedodd yn ddiwyd wrthyf fy holl gamgymeriadau. Wel, os oes gwallau hysbys, nid oes angen eu trwsio: eto, yn union yn y porwr, ac ar y pedwerydd cynnig fe weithiodd y cod (cyflawniad i mi).
Ac yn union fel hynny, heb adael y porwr, fe wnes i fformatio Cais Tynnu gwirioneddol iawn i mewn i gyfleustodau a ddefnyddir ym mron pob dosbarthiad Linux modern.
Cefais fy synnu gan y ffaith, heb wybod yr iaith mewn gwirionedd, heb sefydlu unrhyw beth (mae dibyniaethau angen cryn dipyn o lyfrgelloedd ar gyfer cydosod), a heb hyd yn oed redeg y casglwr, fe wnes i βgodioβ nodwedd gwbl weithredol a defnyddiol yn y porwr.
Fodd bynnag, nid oedd fy nghais yn ymateb ers Mawrth 19, 2019, ac roeddwn eisoes wedi dechrau anghofio amdano.
Ond ddoe ychwanegwyd y cais hwn at feistr.
Felly am beth mae fy stori? Ac mae'n sΓ΄n am y ffaith, o fewn fframwaith technolegau modern, y gellir ysgrifennu cod go iawn eisoes yn y porwr, heb ddefnyddio unrhyw offer datblygu a dibyniaethau yn lleol.
Ar ben hynny, mae'n rhaid i mi gyfaddef, dyma fy ail gais tynnu eisoes ar gyfer cyfleustodau adnabyddus (o leiaf mewn cylchoedd cul). Y tro diwethaf, arweiniodd fy nghais i gywiro arddangosiad rhai meysydd yn rhyngwyneb gwe SyncThing at fy ngolygiad un llinell yn llythrennol mewn amgylchedd nad wyf yn ei wybod o gwbl.
Dim ond defnyddwyr cofrestredig all gymryd rhan yn yr arolwg.
A ddylwn i ysgrifennu mwy neu beidio?
-
ie
-
Nid yw werth ei
Pleidleisiodd 294 o ddefnyddwyr. Ymataliodd 138 o ddefnyddwyr.
Ffynhonnell: hab.com