- mauser1 blogja
- A hozzászóláshoz be kell jelentkezni
- 1697 megtekintés
Hozzászólások
Ez ebben a formában nem umount-olja a filerendszereket, lényegében olyasmi, mintha reset-et nyomtak volna a gépnek, jól gondolom?
Egyébként:
systemctl reboot
systemctl --force reboot
systemctl --force --force reboot
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Igen, jól gondolod!
Forrás: https://en.wikipedia.org/wiki/Magic_SysRq_key#.22Raising_Elephants.22_m…
- A hozzászóláshoz be kell jelentkezni
sysrq.txt-ből:
'b' - Will immediately reboot the system without syncing or unmounting
your disks.
Egy drive I/O erroral elszállt rendszernél megnézem amíg eljut az unmountig a systemd... Hiába, fejlövés az fejlövés.
EA 00 00 FF FF és CD 19 forever!
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "
- A hozzászóláshoz be kell jelentkezni
EA 00 00 FF FF és CD 19
ez mi?
- A hozzászóláshoz be kell jelentkezni
0xEA: JMP ptr16:16 http://www.felixcloutier.com/x86/JMP.html
00 00 FF FF -ből jön ki a FFFF0h cím, ami x86-nál a reset vector https://en.wikipedia.org/wiki/Reset_vector
0xCD: INT imm8 http://www.felixcloutier.com/x86/INT%20n:INTO:INT%203.html
19h: "A program can call this interrupt to reboot the computer" https://en.wikipedia.org/wiki/BIOS_interrupt_call
- A hozzászóláshoz be kell jelentkezni
Gyakorlatban ezt, hogy csinálod pld.: putty console ban?
Milyen programot kell telepíteni hozzá?
- A hozzászóláshoz be kell jelentkezni
Gondolom, megírod assembly-ben, lefordítod. Bár jobban belegondolva nem vagyok meggyőződve arról, hogy user space-ből csak úgy bárhova át lehet adni a vezérlést úgy, hogy a kernel ezt hagyja is.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Nem hiszem, hogy védett módban (összes mai OS ilyen) ez működne.
DOS alatt működik, meg lehet írni assembly-ben vagy ha már úgyis ott az utasításkód, akkor hexeditorban.
Ki lehet próbálni:
$ ( echo -ne "\xEA\x00\x00\xFF\xFF"; head -c $((512-2-5)) < /dev/zero | tr '\0' '\141'; echo -ne "\x55\xAA" ) > asd.img
$ kvm asd.img
vagy
$ qemu asd.img
Az első echo a fent leírt utasítást és címet adja, az utána lévő head+tr csak helykitöltést csinál, hogy a második echo a jó helyre írja a bootolhatóságot jelző 0x55 0xAA -t.
Ha elindítod, a virtuális gép erről fog bootolni, és rögtön újra is indul.
Ha dd-vel rámásolod egy pendrive-ra (dd if=asd.img of=/dev/sdX; partíciós tábla, a filerendszer és minden adat elveszik!) akkor ki lehet próbálni rendes gépen is.
- A hozzászóláshoz be kell jelentkezni
A systemctl --force --force reboot
meg sem próbálja az umount-ot a doksi szerint:
If --force is specified twice, the operation is immediately executed without terminating any processes or unmounting any file systems. This may result in data loss.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
nekem akkor kellett utoljara ilyet hasznalni, mikor systemd szetfosta magat
--
NetBSD - Simplicity is prerequisite for reliability
- A hozzászóláshoz be kell jelentkezni
Igaz, ha még van esélyed közvetlenül a kernelhez szólni...
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ujszulottnek minden poen uj ugyebar. Welcome! :)
google://REISUB
- A hozzászóláshoz be kell jelentkezni
az átirányítás előbb kerül értelmezésre.
- A hozzászóláshoz be kell jelentkezni
Gondolom, lehagyott aposztrofokra utalsz.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
ez esetben nem vágom hova kellene az aposztróf.
- A hozzászóláshoz be kell jelentkezni
Őszintén szólva nem ismerem közelebbről a sudo-t. Arra gondoltam, esetleg lehet ilyesmit:
sudo 'parancs >file'
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
O.o
- A hozzászóláshoz be kell jelentkezni
Ez a nagy o pont kis o mit jelent? Ilyenkor a sudo nem hív egy shell-t?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Tudtommal exec-ezik.
$ sudo 'echo foo > /dev/null' (rvm:ruby-1.9.3-p551)
sudo: echo foo > /dev/null: command not found
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Akkor hogyan?
sudo bash 'echo foo >/dev/null'
esetleg?
Szerk.: különben a su -c által kínáltakból indultam ki.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
itt van pár változat, shell vagy tee.
- A hozzászóláshoz be kell jelentkezni
En hasznalnam a helyedben az egergorgot...
Egyebkent, ha mindenkepp onelinerben akarod, akkor igen, sudo bash -c "echo foo > /dev/null"
Amugy su != sudo
Egyebkent ez tipikus peldaja annak, amikor utana kell gondolni, hogy mi hogyan mukodik amikor beutsz egy parancsot. Az atiranyitast ugyanis nem a meghivott parancs fogja ertelmezni, meg csak nem is a kernel, hanem az a parancsertelmezo, ahova a parancsot atiranyitassal egyutt begepelted. Tehat, az a fajl, amibe atiranyitasz, az nem a parancs altal kerul megnyitasra, hanem a meghivott parancs STDERR, STDIO es/vagy STDOUT fajlleiroi lesznek freopen(3)-elve az atiranyitott fajlra. Ha nincs jogod a celfajl irasra torteno megnyitasara, akkor permdeniedet kapsz.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
A tee paranccsal láttam, az megvolt, ötletesnek is tartom, de egyrészt nem tudtam, hogy a sudo a pipe buffert átadja az argumentumában hívott programnak, másrészt picivel jobban áttekinthető szerintem, amikor már a shell root joggal fut, s abban minden, így az stdout átirányítás is root jogú lesz.
Nem állítottam, hogy a sudo és a su azonosak lennének, csak azt, hogy a su-val meg lehet tenni, hogy az argumentumaként megadott script a su által meghatározott joggal fusson, s ebből gondoltam, ez akár a sudo esetén is lehetne így. Bár tény, hogy így ki lehetne kerülni a sudoers-ben megadott szabályokat, ami nem lenne jó.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
su -c 'echo foo' > /dev/null
Ez itten ugyanugy root joggal indulo echo, ami userkent iranyit at. Amire te gondlsz, az a su -c 'echo foo > /dev/null', de ugye a su az mindenkeppen forkol egy komplett uj shellt (egeszen pontosan egy uj PAM login tortenik a root neveben), mig a sudo az suid-os varazslattal dolgozik, es ugyan odafordul a PAM-hoz, de nem tortenik egy kompletten uj login.
Egyebkent azt hiszem, hogy a sudoers pattern match-csal dolgozik, vagyis a sudoersben megadott szabalyok eleg konnyen megkerulhetoek, ezert kell inkabb wrapper scripteket megadni a sudoers-ben.
Ami a pipe buffert illeti, atadja, mert a child processzek egyszeruen igy mukodnek, megoroklik a szulo file descriptorait.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Igen, az átirányítást az aposztofon belül gondoltam természetesen.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Magát a problémát értettem kezdettől fogva, pusztán a megoldás szintaxisát kerestem. Az világos, hogy a sudo parancs >file esetében a parancs lesz más jogú, az átirányítás viszont a sudo-t is indító shellben hajtódik végre.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
sudo echo... juj.
echo 1 | sudo tee /proc/sys/kernel/sysrq
echo s | sudo tee /proc/sysrq-trigger
echo u | sudo tee /proc/sysrq-trigger
echo b | sudo tee /proc/sysrq-trigger
A sudo echo eseteben az echot elsutod root-kent, majd user joggal megprobalod leirni a kimenetet. ha nem egy kover permdenied a vege, akkor ott valami eleg nagy gaz van.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Ok ,valószínűleg igazad lehet. rootként használtam , sudo nélkül.
- A hozzászóláshoz be kell jelentkezni
Fönti eszmecserét olvasgatva, pár dolognak utána járva tényleg súlyos hiba volt sudo echo, pedig logikusan úgy gondoltam sudo echo 2 >> /xyx/yxx után csak passwordot fog kérni. Mint például egy sudo apt-get install ggjkgkjg esetén. Tanulság => Mindig ki kell próbálni, és csak aztán beírni.
- A hozzászóláshoz be kell jelentkezni
Ez valami hobbiprojekt?
- A hozzászóláshoz be kell jelentkezni
Már az, ha magába fordult gépet újra kell indítani?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
No, nem. Eddigi tapasztalatom alapján, ha egy operációs rendszernek nevezhető entitáshoz nincs
- a fenti feladatkör ellátásához előre kidolgozott parancs,
- és ennek megfelelő dokumentációja,
- és minderről fórumozgani kell,
akkor rákérdezek. Akár durván is.
(Kollégám szerint: entitás == izé ;))
A beszélgetés tárgyából a windows-féléket önkényesen kizártam. :(
- A hozzászóláshoz be kell jelentkezni
"magába fordult gépet újra kell indítani?"
"a fenti feladatkör ellátásához előre kidolgozott parancs"
FAIL.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
"magába fordult gépet újra kell indítani?" - Erre írtam: "No, nem."
"a fenti feladatkör ellátásához előre kidolgozott parancs" - Lásd a topic címe (ott egészen fenn): "Force reboot"
"Mielőtt hozzászólsz valamihez, nem árt, ha elolvasod! Sőt, megérted, amit olvastál!" - Ez meg akár egy Slavor Hardin epigramma is lehetne - bár én írtam. :)
- A hozzászóláshoz be kell jelentkezni
Kezdelek érteni, force reboot elnevezés lehet tényleg megtévesztő. Mivel a fenti feladatkör ellátásához előre kidolgozott parancs létezik.
Híján vagyok a magas fokú szakértelemnek még.
Mit szólnál , ha átnevezném agresszív rebootra a blog bejegyzést?
- A hozzászóláshoz be kell jelentkezni
Semmi baj az elnevezéssel, mert így hívják.
Ugyanezt teszi a: /sbin/reboot -f
Megoldható - ahogy írtad - a "Magic SysRq key" segítségével is.
Tehát akkor hurrá.
- A hozzászóláshoz be kell jelentkezni
Jó akkor egy kukkot se értettem eddig abból miről beszéltek :)
- A hozzászóláshoz be kell jelentkezni
Ooo... a ket megoldas nem ugyanarra valo. A reboot -f akkor hasznos, ha mar van shelled a gepre, es az valamilyen szinten mukodik is. A SysRq akkor is mukodik, ha a gep maga unreszponziv.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
A reboot -f sajnos nem mindig működik, most volt rá szükségem és cseszett csinálni bármit is. Az echo b > /proc/sysrq-trigger viszont ment.
Nagy öröm mondjuk..
- A hozzászóláshoz be kell jelentkezni
Csak én látom az ellentmondást? (Nem.) Ha magába fordult, akkor nem fogad, értelmez parancsot. Ha értelmez, végrehajt parancsot, az nem fordult magába. A grafikus felület megdöglése nem magába fordulás.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
"A grafikus felület megdöglése nem magába fordulás."
Ez erosen az attol fugg kategoria. Egyre tobbszor jon az elo, hogy a grafikus felulet meghal, es az X mar annyira sem erolteti meg magat, hogy a Ctrl+Alt+Fx kombinaciokat lekezelje. Olyankor max ssh-n keresztul eleg korulmenyesen tudnam csak a gepet ravenni az egyuttmukodesre, szoval en azt is ugy kezelem, mintha belso parbeszedbe kezdett volna onmagaval az elet ertelmerol.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni
Igen, ez valóban kellemetlen, velem is előfordult. Ha működik a gép, akkor a kikapcsoló gomb megnyomását még elhiszi, ssh-n is reboot-ot mondanék neki, ám a kikapcsoló gomb egyszerűbb. Probléma akkor van, ha a kikapcsoló gombot hosszan kell nyomni.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Vagy épp +100 km-re.
- A hozzászóláshoz be kell jelentkezni
https://www.vanheusden.com/tcpconsole/
~~~~~~~~
deb http://deb.uucp.hu/ wheezy yazzy repack
- A hozzászóláshoz be kell jelentkezni
Jól látod! A magába fordult az hajszálpontos műszaki-tudományos-filozófiai-fingomsincs. :D
Az X csak egy program, kilőhető. De itt egy életből ellesett (aztán majd elmagyarázom ;) példa, amit nem magába fordulásnak hívok, hanem "befagyott a kernel". Szakember által gondosan NEM peccselt filesystem driver intenzív terhelés mellett többé nem tért vissza az open() hívásból. A futtatott rendszer is megállt úgy 120 befagyott tranzakció után - mivel monda: lock és itt mintha elvágták volna...
Ekkor a kernel még javában működik, be is lehet jelentkezni. De mindenképpen indokolt a legkevesebb tevékenységgel járó reboot.
A magyarázat: Ugyan életből ellesett a péda, azaz éles rendszeren fordult elő a hiba. Mégis azt mondanám, hogy ez csak más számára életszerű. Ugyanezen a rendszeren több, szakértelmet nélkülöző dilettáns megoldás is előfordult. Az a véleményem, hogy egy rendesen elkészített rendszeren a "force reboot" nem igazán életszerű.
- A hozzászóláshoz be kell jelentkezni
Attól függ, mit nevezünk force reboot-nak. Umount, reboot, netán minden nélkül csak reboot, vagy reset?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
En force rebootnak a SysRq+SUB-ot nevezem (SysRq+S, SysRq+U, SysRq+B), a reset-et meg resetnek.
--
Blog | @hron84
Üzemeltető macik
- A hozzászóláshoz be kell jelentkezni