Если у вас все еще есть корневая оболочка, у вас может быть шанс восстановить вашу систему. Допустим , что вы переместили все общие каталоги ( /bin, /etc, /lib, /sbin, /usr- это те , которые могли бы сделать восстановление трудного) под /oops.
Вы не сможете выполнить mvкоманду напрямую, даже если вы укажете полный путь /oops/bin/mv. Это потому, что mvон динамически связан ; потому что вы переместили /libкаталог, mvне можете запустить, потому что он не может найти библиотеки, которые составляют часть его кода. На самом деле, это даже хуже: mvне удается найти динамический загрузчик /lib/ld-linux.so.2 (имя может отличаться в зависимости от вашей архитектуры и варианта Unix, а каталог может иметь другое имя, например /lib32или /lib64). Поэтому, пока вы не переместили /libкаталог обратно, вам нужно явно вызывать компоновщик и вам нужно указать путь к перемещенным библиотекам. Вот команда, протестированная на Debian squeeze 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 . Также есть sash , отдельная оболочка с множеством встроенных команд. Если у вас есть один из них, вы можете сделать свое восстановление оттуда. Если вы не установили их до факта, уже слишком поздно.
# mkdir /oops
# mv /lib /bin /oops
# sash
Stand-alone shell (version 3.7)
> -mv /oops/* /
> exit
Если у вас больше нет корневой оболочки, но у вас все еще есть слушающий демон SSH, и вы можете войти в систему как root через 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 (любой будет работать, если только он достаточно недавний, чтобы иметь доступ к вашим дискам и файловым системам) и переместить файлы обратно.