Tarkibga o'tish

Rescue va emergency mode

Server boot qila olmay qolganda — masalan, /etc/fstab da xato bo'lsa yoki muhim systemd unit ishdan chiqsa — muammoni tuzatish uchun avval tizimga biror shaklda kirish kerak. systemd aynan shu maqsad uchun ikkita maxsus, minimal target’ni taqdim etadi: rescue.target va emergency.target.

Bu maqola Boot jarayoni va GRUB va systemd troubleshooting maqolalarini birlashtiradi va muammo aynan boot bosqichida bo'lganda amaliy tiklash yo'lini ko'rsatadi.

Nimalarni o'rganasiz

Bu maqola oxirida siz quyidagilarni qila olasiz:

  • rescue.target va emergency.target o'rtasidagi farqni tushuntirish;
  • har ikki rejimga GRUB orqali kirish;
  • unutilgan root parolini tiklash;
  • /etc/fstab xatosi sababli boot qilmayotgan tizimni tuzatish;
  • emergency mode’da fayl tizimi hozir read-only yoki read-write ekanini tekshirish.

rescue.target va emergency.target o'rtasidagi farq

Target Fayl tizimlari Tarmoq va boshqa xizmatlar Qachon ishlatiladi
rescue.target Odatdagidek mount qilinadi (/etc/fstab bo'yicha) Ko'p xizmatlar ishga tushmaydi, lekin asosiy tizim tayyor Parolni tiklash, oddiy konfiguratsiya xatosini tuzatish
emergency.target Faqat root (/) mount qilinadi, ko'pincha read-only Deyarli hech narsa ishga tushmaydi /etc/fstab buzilgan yoki fayl tizimini mount qilishda muammo bor

emergency.target — mumkin bo'lgan eng minimal holat: agar hatto rescue.target ham to'liq ishga tusha olmasa (masalan, aynan fstab xatosi sababli), emergency.target odatda baribir ishlaydi, chunki u boshqa mount’larga bog'liq emas.

GRUB orqali rescue yoki emergency mode’ga kirish

Boot jarayoni va GRUB maqolasidagi vaqtinchalik parametr qo'shish texnikasi bu yerda to'g'ridan-to'g'ri qo'llanadi:

  1. Server qayta yuklanayotganda GRUB menyusi chiqqach, uni Shift/Esc bilan to'xtating.
  2. Yozuvni tanlang va e ni bosing.
  3. linux bilan boshlanadigan qator oxiriga kerakli target’ni qo'shing:

Rescue mode uchun:

linux   /boot/vmlinuz-... root=UUID=... ro   systemd.unit=rescue.target

Emergency mode uchun:

linux   /boot/vmlinuz-... root=UUID=... ro   systemd.unit=emergency.target
  1. Ctrl+X yoki F10 bilan shu holatda boot qiling.

Bu parametr faqat joriy boot’ga tegishli — qayta yuklashdan keyin tizim odatdagi target’iga qaytadi.

Info

Ayrim eski hujjatlarda single yoki 1 parametri tilga olinadi — bu SysV init davridan qolgan sarqit va systemd tizimida systemd.unit=rescue.target ga mos keladi.

Root parolini tiklash

Rescue mode’ga kirgach, ko'p distributivlar yo avtomatik root shell ochadi yoki root parolini so'raydi. Agar root parolining o'zi noma’lum bo'lsa, quyidagi umumiy yondashuv qo'llanadi:

  1. emergency.target yoki rescue.target orqali kirgandan keyin root fayl tizimi read-only bo'lishi mumkin — avval yozish huquqini yoqing:
mount -o remount,rw /
  1. Yangi parol o'rnating:
passwd root
  1. O'zgarish diskka to'g'ri yozilganiga ishonch hosil qilish uchun tizimni to'g'ri tarzda qayta yuklang:
systemctl reboot

Danger

Bu usul jismoniy yoki konsol orqali kirish imkoniga ega (KVM/iLO/hypervisor konsoli) har qanday kishiga root parolini qayta o'rnatish imkonini beradi — bu Linux’ning zaiflik emas, ataylab qo'yilgan xususiyati. Aynan shu sababli jismoniy va konsol kirishini nazorat qilish (server xonasiga kirish, hypervisor ruxsatlari) parol xavfsizligining ajralmas qismi.

Rescue mode’ning o'zi siz yo'qotgan parolni so'raganda

Bu yerda bitta qiyinchilik bor: ko'p distributivlarda rescue.target shell berishdan oldin root parolini so'raydi — root parolining o'zi esdan chiqqan bo'lsa, bundan foyda yo'q. Buni aylanib o'tish yo'li — systemd ni butunlay chetlab o'tib, kernel’ga PID 1 sifatida hech qanday parol himoya qilmaydigan shell’ni ishga tushirtirish:

  • Ubuntu/Debian — GRUB yozuvlar muharririda (e) linux qatorini toping va ro quiet splash ni rw init=/bin/bash bilan almashtiring, so'ng Ctrl+X bilan boot qiling. Kernel / allaqachon yozish mumkin bo'lgan holda to'g'ridan-to'g'ri root shell’ga tushadi, shuning uchun passwd root darhol ishlaydi. Oddiy o'chirish jarayoni ishlamayotgani uchun keyin exec /sbin/init yoki majburiy reboot -f bilan qayta yuklang.
  • RHEL/Rocky/Fedora — buning o'rniga rd.break qo'shing. Bu initramfs ichida to'xtaydi, haqiqiy root esa /sysroot da read-only holda mount qilingan bo'ladi. Uni qayta mount qiling (mount -o remount,rw /sysroot), chroot /sysroot ni bajaring, passwd ni ishga tushiring va — SELinux enforcing rejimida bo'lgani uchun — o'zgartirilgan shadow fayli keyingi boot’da qayta belgilanishi (relabel) uchun touch /.autorelabel ni bajaring.

Danger

init=/bin/bash butun xizmatlar va mount’lar qatlamini o'tkazib yuboradi, shuning uchun odatda mavjud deb qabul qilinadigan vositalar (log yozish, tarmoq, toza o'chirish) ishlamayotgan bo'ladi — faqat parolni qayta o'rnating va oddiy boot’ga qayting. Bu shell’dan umumiy ta’mirlash ishlari uchun foydalanmang; buning uchun to'g'ri tarzda rescue.target (yoki emergency.target) ga boot qiling.

/etc/fstab xatosi sababli boot qilmayotgan tizimni tuzatish

fstab dagi noto'g'ri UUID yoki mavjud bo'lmagan mount nuqtasi odatda tizimni avtomatik ravishda emergency mode’ga tushiradi va sababni terminalda ko'rsatadi.

  1. Xato xabarini o'qing — u odatda muammoli qator yoki qurilmani ko'rsatadi.
  2. Kerak bo'lsa, fayl tizimini yozish mumkin bo'lgan holatga keltiring:
mount -o remount,rw /
  1. fstab ni tahrirlang:
nano /etc/fstab
  1. Muammoli qatorni tuzating yoki vaqtincha izohga aylantiring (qatorni # bilan boshlab), so'ng saqlang.
  2. Hali qayta yuklamasdan o'zgarishni tekshiring:
findmnt --verify
  1. Xatosiz ekani tasdiqlangach:
systemctl reboot

Bu jarayon fstab maqolasida ko'rilgan findmnt --verify --tab-file bilan oldindan tekshirishni to'ldiradi — u yerda u vaqtinchalik sinov fayli bilan, bu yerda esa haqiqiy tiklash vaziyatida ishlatiladi.

Joriy holatni tekshirish

Rescue yoki emergency mode’da qaysi target faolligini tasdiqlash:

systemctl get-default
systemctl list-units --type=target

Fayl tizimi read-only yoki read-write ekanini tekshirish:

findmnt -no OPTIONS /

Natija ro yoki rw ni ko'rsatadi.

Keng tarqalgan xatolar

Avval qayta mount qilmasdan faylni tahrirlashga urinish

emergency.target ostida root ko'pincha read-only bo'ladi. Avval mount -o remount,rw / ni bajarmasdan fstab yoki boshqa faylni saqlash "Read-only file system" xatosi bilan muvaffaqiyatsiz bo'ladi.

fstab ni tuzatgandan keyin oldin tekshirmasdan qayta yuklash

Agar yangi xato kiritilgan bo'lsa, tizim yana emergency mode’ga tushadi. Oldindan findmnt --verify bilan tekshirish bu siklning oldini oladi.

Rescue va emergency mode’ni bir xil narsa deb hisoblash

Rescue mode ko'p fayl tizimlarini mount qiladi va ayrim xizmatlarni ishga tushiradi; emergency mode esa deyarli hech narsani ishga tushirmaydi. Vaziyatga noto'g'ri rejimni tanlash kerakli vosita (masalan, tarmoq) shunchaki mavjud bo'lmasligiga olib kelishi mumkin.

Mashqlar

  1. O'chirib tashlasa bo'ladigan VM’da GRUB orqali rescue.target ga kiring va qaysi target’lar faolligini systemctl list-units --type=target bilan tekshiring.
  2. Xuddi shu VM’da emergency.target ga kiring va findmnt -no OPTIONS / natijasini rescue mode’da ko'rganingiz bilan solishtiring.
  3. Sinov VM’ida /etc/fstab ga ataylab buzilgan qator qo'shing (masalan, mavjud bo'lmagan UUID), qayta yuklang va tizim emergency mode’ga tushishini kuzating, so'ng yuqorida ko'rsatilgan jarayon bo'yicha uni tuzating.
  4. Rescue mode’da sinov foydalanuvchisining parolini passwd bilan o'zgartiring va oddiy qayta yuklashdan keyin yangi parol ishlashini tasdiqlang.

Mashqni bajardim deyish uchun: noto'g'ri fstab yozuvi sabab bo'lgan boot xatosi berilganda emergency mode’ga kirishdan toza qayta yuklashgacha bo'lgan to'liq ketma-ketlikni remount qadamini tushirib qoldirmasdan tasvirlab bera olishingiz kerak.

Xulosa

rescue.target va emergency.target — systemd ning eng minimal ishga tushish holatlari bo'lib, ular GRUB orqali systemd.unit= parametri bilan vaqtincha tanlanadi. Rescue mode ko'proq fayl tizimlari va xizmatlarni mount qiladi, emergency mode esa faqat root fayl tizimini, ko'pincha read-only holda ochadi. Ikkalasi ham root parolini tiklash yoki /etc/fstab kabi konfiguratsiya xatolarini to'liq qayta yuklash siklisiz tuzatish uchun ishlatiladi — lekin avval fayl tizimini remount,rw bilan yozish uchun qayta ochish kerak.

Manbalar