Hvernig á að breyta færibreytum kjarna keyrslutíma á viðvarandi og óviðvarandi hátt


Í hluta 13 af þessu hvernig á að nota GRUB til að breyta hegðun kerfisins með því að senda valkosti til kjarnans fyrir áframhaldandi ræsingarferlið.

Á sama hátt geturðu notað skipanalínuna í keyrandi Linux kerfi til að breyta ákveðnum keyrslukjarnabreytum sem einskiptisbreyting, eða varanlega með því að breyta stillingarskrá.

Þannig hefurðu leyfi til að virkja eða slökkva á kjarnabreytum á flugi án mikilla erfiðleika þegar þess er þörf vegna nauðsynlegrar breytinga á því hvernig kerfið er gert ráð fyrir að starfa.

Við kynnum /proc skráakerfinu

Nýjasta forskrift Filesystem Hierarchy Standard gefur til kynna að /proc táknar sjálfgefna aðferð til að meðhöndla ferli og kerfisupplýsingar sem og aðrar upplýsingar um kjarna og minni. Sérstaklega er /proc/sys þar sem þú getur fundið allar upplýsingar um tæki, rekla og suma kjarnaeiginleika.

Raunveruleg innri uppbygging /proc/sys fer mjög eftir kjarnanum sem er notaður, en þú ert líklega að finna eftirfarandi möppur inni. Aftur á móti mun hver þeirra innihalda aðrar undirmöppur þar sem gildunum fyrir hvern færibreytuflokk er viðhaldið:

  1. dev: færibreytur fyrir tiltekin tæki sem eru tengd við vélina.
  2. fs: stillingar skráakerfis (til dæmis kvótar og inóder).
  3. kjarna: kjarnasértæk stilling.
  4. net: netstillingar.
  5. vm: notkun sýndarminni kjarnans.

Til að breyta færibreytum kjarna keyrslutíma munum við nota sysctl skipunina. Nákvæman fjölda breytu sem hægt er að breyta er hægt að skoða með:

# sysctl -a | wc -l

Ef þú vilt skoða heildarlistann yfir kjarnafæribreytur skaltu bara gera:

# sysctl -a 

Þar sem framleiðsla ofangreindrar skipunar mun samanstanda af MIKIÐ af línum, getum við notað leiðslu sem fylgt er eftir með minna til að skoða hana betur:

# sysctl -a | less

Við skulum kíkja á fyrstu línurnar. Vinsamlegast athugið að fyrstu stafirnir í hverri línu passa við nöfn möppanna inni í /proc/sys:

Til dæmis, auðkennda línan:

dev.cdrom.info = drive name:        	sr0

gefur til kynna að sr0 sé samnefni fyrir sjóndrifið. Með öðrum orðum, það er hvernig kjarninn sér þann drif og notar það nafn til að vísa til þess.

Í eftirfarandi kafla munum við útskýra hvernig á að breyta öðrum \mikilvægari keyrslubreytum kjarna í Linux.

Hvernig á að breyta eða breyta Linux Kernel Runtime Parameters

Miðað við það sem við höfum útskýrt hingað til er auðvelt að sjá að nafn færibreytu passar við möppuskipulagið inni í /proc/sys þar sem það er að finna.

Til dæmis:

dev.cdrom.autoclose → /proc/sys/dev/cdrom/autoclose
net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward

Sem sagt, við getum skoðað gildi tiltekinnar Linux kjarna færibreytu með því að nota annað hvort sysctl á eftir nafni færibreytunnar eða lesa tilheyrandi skrá:

# sysctl dev.cdrom.autoclose
# cat /proc/sys/dev/cdrom/autoclose
# sysctl net.ipv4.ip_forward
# cat /proc/sys/net/ipv4/ip_forward

Til að stilla gildi fyrir kjarnabreytu getum við líka notað sysctl, en með því að nota -w valmöguleikann og fylgt eftir með nafni færibreytunnar, jöfnunarmerkinu og æskilegu gildi.

Önnur aðferð felst í því að nota echo til að skrifa yfir skrána sem tengist færibreytunni. Með öðrum orðum, eftirfarandi aðferðir jafngilda því að slökkva á pakkaframsendingarvirkni í kerfinu okkar (sem, við the vegur, ætti að vera sjálfgefið gildi þegar kassi á ekki að flytja umferð á milli netkerfa):

# echo 0 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=0

Það er mikilvægt að hafa í huga að kjarnafæribreytur sem eru stilltar með sysctl verða aðeins framfylgt meðan á núverandi lotu stendur og hverfa þegar kerfið er endurræst.

Til að stilla þessi gildi varanlega skaltu breyta /etc/sysctl.conf með þeim gildum sem þú vilt. Til dæmis, til að slökkva á framsendingu pakka í /etc/sysctl.conf skaltu ganga úr skugga um að þessi lína birtist í skránni:

net.ipv4.ip_forward=0

Keyrðu síðan eftirfarandi skipun til að beita breytingunum á hlaupandi uppsetningu.

# sysctl -p

Önnur dæmi um mikilvægar keyrslutímabreytur kjarna eru:

fs.file-max tilgreinir hámarksfjölda skráahandfanga sem kjarninn getur úthlutað fyrir kerfið. Það fer eftir fyrirhugaðri notkun kerfisins þíns (vefur/gagnagrunnur/skráaþjónn, svo nokkur dæmi séu nefnd), gætirðu viljað breyta þessu gildi til að mæta þörfum kerfisins.

Annars færðu Of margar opnar skrár villuboð í besta falli og gæti komið í veg fyrir að stýrikerfið ræsist í versta falli.

Ef þú lendir í þessari síðustu stöðu vegna saklausra mistaka, skaltu ræsa í eins notendaham (eins og útskýrt er í hluta 14 - Fylgstu með og stilltu Linux ferlistakmörkun á notkun þessarar seríu.

kernel.sysrq er notað til að virkja SysRq takkann á lyklaborðinu þínu (einnig þekktur sem prentskjálykillinn) til að leyfa ákveðnum takkasamsetningum að kalla fram neyðaraðgerðir þegar kerfið hefur ekki svarað.

Sjálfgefið gildi (16) gefur til kynna að kerfið muni virða Alt+SysRq+lykla samsetninguna og framkvæma þær aðgerðir sem taldar eru upp í sysrq.c skjölunum sem finnast í kernel.org (þar sem lykillinn er einn stafur í b-z svið). Til dæmis mun Alt+SysRq+b endurræsa kerfið af krafti (notaðu þetta sem síðasta úrræði ef þjónninn þinn svarar ekki).

Viðvörun! Ekki reyna að ýta á þessa lyklasamsetningu á sýndarvél því það gæti þvingað hýsilkerfið þitt til að endurræsa!

Þegar stillt er á 1 mun net.ipv4.icmp_echo_ignore_all hunsa ping beiðnir og sleppa þeim á kjarnastigi. Þetta er sýnt á myndinni hér að neðan - athugaðu hvernig pingbeiðnir glatast eftir að þessi kjarnabreytu hefur verið stillt:

Betri og auðveldari leið til að stilla einstakar keyrslubreytur er að nota .conf skrár inni í /etc/sysctl.d og flokka þær eftir flokkum.

Til dæmis, í stað þess að setja net.ipv4.ip_forward=0 og net.ipv4.icmp_echo_ignore_all=1 í /etc/sysctl.conf, getum við búið til nýja skrá sem heitir net.conf inni í /etc/ sysctl.d:

# echo "net.ipv4.ip_forward=0" > /etc/sysctl.d/net.conf
# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.d/net.conf

Ef þú velur að nota þessa nálgun, ekki gleyma að fjarlægja sömu línur úr /etc/sysctl.conf.

Samantekt

Í þessari grein höfum við útskýrt hvernig á að breyta keyrslutímabreytum kjarna, bæði viðvarandi og ekki viðvarandi, með því að nota sysctl, /etc/sysctl.conf og skrár inni í /etc/sysctl.d.

Í sysctl skjölunum er að finna frekari upplýsingar um merkingu fleiri breyta. Þessar skrár tákna fullkomnustu heimildina um færibreyturnar sem hægt er að stilla með sysctl.

Fannst þér þessi grein gagnleg? Við vonum svo sannarlega að þú hafir gert það. Ekki hika við að láta okkur vita ef þú hefur einhverjar spurningar eða tillögur til úrbóta.