При таком исходе событий файл будет удален и система может прийти в непригодность.
Есть выход из этой ситуации — системные файлы можно заменить.
В идеальном случае копии системных файлов можно найти на системном диске в папках:
%systemroot%system32dllcache или %systemdrive%i386
%systemroot% соответсвует в стандартном случае C:Windows для XP/Vista и C:WINNT для Windows 2000, %systemdrive% — имя системного диска
Однако не всегда есть возможность воспользоваться этими папками для подмены зажаренных или удалённых системных файлов.
Одно из решений данной проблемы — замена файлов из аналогичной заведомо здоровой системы. Здесь нужно быть уверенным, что система-донор абсолютно чиста, имеет тот же самый язык и тот же самый установленный сервис пак, что и больная система. Но существует опасность заразить новую систему, если вы недостаточно опытны в этом.
Если же подходящей системы-донора нет или вы боитесь заразить другой компьютер, можно загрузиться с любого Live CD (BartPE, Knoppix) либо в консоли восстановления используя дистрибутив системы. Здесь так же нужно быть уверенным, что дистрибутив имеет тот же язык и тот же сервис пак, что и система.
Как сделать свою замену файлов с эффектами стрельбы
Если дистрибутив сервис пака не имеет или имеет более низкую версию по сравнению с системой, необходимо создать на здоровом компьютере дистрибутив с интегрированным сервис паком. Проще всего это сделать с помощью программы NLite.
Итак у нас уже есть нужный дистрибутив.
Загружаемся в Загружаемся
После входа и появления приглашения к диалогу наберите команду:
X – буква привода в котором находится дистрибутив
Нажмите ВВОД.
Предположим, что Вы должны заменить файл:
Источник: www.safezone.cc
Замена повреждённых или удалённых системных файлов Windows вручную
Для восстановления работоспособности Windows существует масса способов – точки отката, бэкап, бэкап и откат её реестра, восстановление целостности её файлов, переустановка Microsoft Visual C++ и прочих системных компонентов. Но только предварительно сделанный бэкап системы можно считать панацеей, универсальным «лекарством» от всех возможных проблем. Как быть, если нужно восстановить системные файлы, а у нас ни бэкапа нет, ни инструмент восстановления системных файлов не работает?
В таких случаях можно прибегнуть к замене системных файлов Windows, если они повреждены или удалены, вручную.
Замена системных файлов Windows вручную – операция, требующая определённых знаний и навыков в работе операционной системы от Microsoft. Нам нужно точно знать, какой файл системы повреждён или удалён, чтобы мы могли его заменить дубликатом. К примеру, если мы при открытии системного управления дисками видим уведомление типа этого,
Какой заменой файлов я пользуюсь?
это значит, что повреждён или удалён файл diskmgmt.msc – файл запуска непосредственно утилиты управления дисками. В этом случае мы можем попытаться решить проблему путём восстановления целостности системных файлов, т.е. запустить в командной строке известную команду sfc/scannow . Но этот механизм системы не всегда даёт положительные результаты и часто завершается уведомлением о невозможности восстановления.
В таком случае далее нужно предпринимать действия по восстановлению хранилища системных ресурсов и потом снова запускать sfc/scannow . Ручная замена проблемных системных файлов – более топорная операция, плюс к этому, требующая, как упоминалось, чёткого понимания, какие именно файлы по какому пути нужно заменять. Но если эти файлы и пути известны, то это более быстрое и надёжное решение проблемы.
Что для этого необходимо? Нам понадобится установочный ISO нужной версии Windows. Открываем его архиватором 7-Zip.
Открываем папку «sources», далее – «install».
Внутри файла «install» выбираем папку с тем или иным порядковым номером. Порядковые номера – это индексы редакций Windows. Если, например, в нашем случае нужно восстановить файл diskmgmt.msc , нам без разницы редакция, эта системная утилита есть в любой редакции Windows. Поэтому мы просто выберем редакцию Pro , она идёт под номером 4.
Но если файл нужного системного компонента есть только в определённой редакции, например, только в Pro, то необходимо указывать индекс конкретно этой редакции. А узнать индексы редакций в составе дистрибутива можно с помощью командной строки. Нужно подключить установочный ISO для отображения в системе и прописать в команде Dism путь к файлу install на борту этого ISO , вот так:
Dism /Get-WimInfo /WimFile:J:sourcesinstall.wim
Здесь вместо буквы J каждый должен подставить свою букву диска подключённого ISO . И если файл install имеет формат не «.wim», а «.esd», то, соответственно, в конце команды необходимо указать этот формат. В ответ на эту команду получим справку о соответствии индексам редакций Windows.
Определившись с редакцией, распаковываем нужный системный каталог. В нашем случае необходимо заменить файл утилиты diskmgmt.msc , следовательно, мы распаковываем каталог «Windows» . Кликаем его и жмём «Extract».
Указываем путь распаковки.
И после распаковки ищем файл утилиты diskmgmt.msc .
При поиске обнаружилось несколько дубликатов diskmgmt.msc – в оригинальном месте хранения файла, в хранилище системных ресурсов (т.е. в папке WinSxS) , в других системных подкаталогах. Мы берём файл, находящийся по исходному его пути хранения, в папке «System32» . Копируем его.
И помещаем этот файл в папку «System32» внутри каталога «Windows» на диске С текущей системы.
Подтверждаем вставку или замену файла.
Замена системных файлов Android с помощью adb
Способ может быть полезен в том случае, если «уже ничего не помогает», доступа к Root Explorer нет или телефон вообще не может загрузиться. В моем случае, пришлось в «боевом» режиме восстанавливать удалённый по глупости SystemUI.apk. При этом на телефоне что-то делать можно было только в доли секунды между нажатием кнопки «ОК» на предыдущем окне с ошибкой и появлением следующего такого же окна. Перепрошиваться не хотелось, потому пришлось срочно осваивать adb.
Итак, для того, чтобы подключить свой гуглофон к adb, вам нужно:
1) Android SDK для Вашей системы (здесь — на примере GNU/Linux Ubuntu)
2) Android SDK Platform-tools (устанавливаются выбором соответствующей галочки в Android SDK)
3) В «Параметры — Программы — Отладка» должна стоять галочка на «Отладка по USB»
4) Подключить телефон к USB
5) В моём случае пришлось сделать еще две вещи:
указать ID производителя телефона idVendor (его можно найти здесь):
#echo SUBSYSTEM==»usb», SYSFS= , MODE=»0666″ > /etc/udev/rules.d/51-android.rules
#chmod a+r /etc/udev/rules.d/51-android.rules
где 0bb4 заменяем на код своего производителя, после чего перезапустить adb
#adb kill-server
#adb start-server
Итак, все установлено и подключено, вы добавили путь к platform-tools в переменную $PATH своей операционной системы или перешли в эту папку с помощью команды cd. По команде «adb devices» должен выдавать некий номер и справа от него «device». Это значит, что adb видит телефон и может с ним работать. Если вместо «device» что-то другое или вообще «List of devices attached» — проблема где-то на 4-5 шаге.
Далее вам нужно поместить системный файл, который вы хотите установить, в папку platform-tools. То есть запасная копия системного файла должна быть приготовлена заранее или скопирована с аналогичного телефона.
После этого можно закинуть системный файл в /system/app такой последовательностью команд:
$adb push YourFile.apk /data/Yourfile.apk
$adb remount
$adb shell
$su
#cp -f /data/YourFile.apk /system/app/Yourfile.apk
#chmod 644 /system/app/YourFile.apk
#exit
$exit
$adb reboot
где YourFile.apk — имя вашего системного файла, причем регистр букв имеет значение.
После последней команды Ваш телефон должен перезагрузиться уже с новыми файлами.
Если на команду «adb remount» Вы получаете ответ «remount failed: Operation not permitted», то попробуйте вместо нее после «su» ввести «#mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system».
P.S.: В линуксе, если platform-tools не добавлена в $PATH, вместо «adb» нужно писать «./adb».
В этой статье команды, которые я запускал от имени обычного пользователя обозначены символом $ в начале строки, от имени root — символом #.
Источник: habr.com