Якщо у вас все ще є коренева оболонка, у вас може виникнути шанс відновити систему. Припустимо , що ви перемістили все загальні каталоги ( /bin
, /etc
, /lib
, /sbin
, /usr
- це ті , які могли б зробити відновлення важкого) під /oops
.
Ви не зможете безпосередньо надати mv
команду, навіть якщо вказати повний шлях /oops/bin/mv
. Це тому mv
, що динамічно пов'язане ; оскільки ви перемістили /lib
каталог, mv
його не можна запустити, оскільки він не може знайти бібліотеки, що входять до його коду. Насправді, це навіть гірше, ніж це: mv
неможливо знайти динамічний завантажувач /lib/ld-linux.so.2
(назва може змінюватися залежно від вашої архітектури та варіанту unix, а каталог може мати інше ім’я, наприклад, /lib32
або /lib64
). Тому, поки ви не перемістили /lib
каталог назад, вам потрібно чітко викликати посилання, і вам потрібно вказати шлях до переміщених бібліотек. Ось команда, протестована на Debian стисканні i386.
export LD_LIBRARY_PATH=/oops/lib:/oops/lib/i386-linux-gnu
/oops/lib/ld-linux.so.2 /oops/bin/mv /oops/* /
Можливо, вам доведеться трохи відкоригувати це для інших дистрибутивів чи архітектур. Наприклад, для CentOS на x86_64:
export LD_LIBRARY_PATH=/oops/lib:/oops/lib64
/oops/lib64/ld-linux-x86-64.so.2 /oops/bin/mv /oops/* /
Коли ви щось накрутили /lib
, це допомагає мати статично пов'язаний набір інструментів. Деякі дистрибутиви (я не знаю про CentOS) забезпечують статично пов'язану копію Busybox . Там також стулка , автономні оболонки з багатьма командами вбудованих. Якщо у вас є одне з них, ви можете відновити звідти. Якщо ви їх не встановили раніше, то вже пізно.
# mkdir /oops
# mv /lib /bin /oops
# sash
Stand-alone shell (version 3.7)
> -mv /oops/* /
> exit
Якщо у вас більше немає кореневої оболонки, але ви все ще маєте прослуховування демона SSH, і ви можете увійти безпосередньо як корінь через ssh, і у вас є один із цих статично пов’язаних наборів інструментів, ви зможете ввімкнути скриньку. Це може працювати, якщо ви переїхали /lib
і /bin
, але ні /etc
.
ssh root@broken.example.com /oops/bin/sash
root@broken.example.com's password:
Stand-alone shell (version 3.7)
> -mv /oops/* /
Деякі адміністратори налаштовують альтернативний обліковий запис зі статично пов'язаною оболонкою або змушують кореневий обліковий запис використовувати статично пов’язану оболонку саме для таких проблем.
Якщо у вас немає кореневої оболонки і ви не вжили заходів обережності, вам потрібно буде завантажитися з живого CD / USB Linux (будь-який буде робити, поки це досить недавно, щоб мати доступ до своїх дисків і файлових систем) і перемістити файли назад.