LINUX.ORG.RU

Восстановить из бэкапа, очевидно же. Только не говори, что ты его не сделал перед этим разрушительным экспериментом.

amomymous ★★★ ()
Ответ на: комментарий от amomymous

Делал, восстановил. Вопрос в другом, как починить если бы бекапа не было, в теории. Ведь на ext2, да еще и спустя время после этой комманды шансы на восстановление стремяться к нулю. Значит только бекапом?

TheBear ()

история успеха

Сейчас вроде бы как перед затиранием корневого каталога должен высвечиваться prompt. Если ты его проигнорировал, то ССЗБ и осталось только сделать вдоль.

Bfgeshka ★★★★★ ()

Переустановить линукс если home не задело.

crowbar ()
Ответ на: комментарий от TheBear

давай, я разнесу тебе мозги кувалдой, а потому буду спрашивать врачей-паталогоанатомов, как тебе их починить?

darkenshvein ★★★★★ ()
Ответ на: комментарий от darkenshvein

давай, я разнесу тебе мозги кувалдой, а потому буду спрашивать врачей-паталогоанатомов, как тебе их починить?

Переустановить топик стартера!

cipher ★★★★★ ()
Ответ на: комментарий от TheBear

шансы на восстановление стремяться к нулю.

На восстановление системы, да, стремятся к нулю. Какие-нибудь данные можно попробовать выковырять testdisk'ом или ещё чем подобным. Но восстановить всё — и данные, и бинарники, и права доступа маловероятно. Устанавливать заново с дистрибутива и разорачивать с резервной копии.

mky ★★★★★ ()

На Linux-девайсах от Motorola можно запустить эту весёлую команду и навсегда убить телефон. Ибо сносится /etc/pds (калибровки, поэтому r/w), который для каждой модельки уникальный ^^

EXL ★★★★★ ()

Как теперь починить систему?

так как ты делал эту команду (предположительно) в bash — то значит всё удалилось, *НО* (наверно) bash остался в памяти и всё ещё может принимать некоторые команды.

с небольшими нюансами. например вместо команды ls (наверняка) нужно будет набрать echo *.

используя эти команды (и прочие извращения), попробуй как-нибудь (незнаю как) выкачать из сети (сеть тоже ведь работает!) утилиту для того чтобы сделать undelete.

далее через эту утилиту (как бы он не называлась бы) — восстанови необходимые важные тебе файлы (документы, не системные).

а остальные (системные) файлы — установи в штатном режиме через установщик дистрибутива, после перезагрузки.

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от TheBear

Делал, восстановил. Вопрос в другом, как починить если бы бекапа не было, в теории. Ведь на ext2, да еще и спустя время после этой комманды шансы на восстановление стремяться к нулю. Значит только бекапом?

Откуда же такие неучи берутся. Ты хоть знаешь, что это за команда?

Deleted ()
Ответ на: комментарий от Bfgeshka

НЯЗ там оно высвечивается только при «rm -rf /», а вот если пишешь «/*» то ничего не высвечивается.

Deleted ()
Ответ на: комментарий от user_id_68054

*НО* (наверно) bash остался в памяти и всё ещё может принимать некоторые команды.

он не сможет сделать ничего абсолютно, ни создать файл, ни прочитать, ни выполнить

anonymous ()
Ответ на: комментарий от anonymous

он не сможет сделать ничего абсолютно, ни создать файл, ни
прочитать, ни выполнить

хм.. давай подумаем..

создать файл:

echo 'фигня' >/файл.txt

остальное — не знаю. да :-)

а если можно как-нибудь создавать файлы устройств в /dev/ — то это смогло бы спасти ситуацию?

надо подумать, быть может /proc/ останется в живых.. могли бы мы привлечь как-нибудь это?

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 2)
Ответ на: комментарий от anonymous

ни создать файл

>/test

ни прочитать

echo `<test`

ни выполнить

. test (не совсем выполнить, и только скрипт для баша)

gentoo_root ★★★★★ ()

rm -rf /*

а ещё команда rm -rf /* — наверняка удалит все файлы из каталога /sys/firmware/efi/efivars/.

возможен такой сценарий?

к чему такой поворот событий может привести?

Запустил rm -rf /* от рута, посмотреть реально ли что то будет

отлично, раз уж ты ( TheBear) уже это проверил — то рассказывай :-)

ведь не на виртуалке ты это делал? а на нормальном компе?

user_id_68054 ★★★★★ ()
Ответ на: комментарий от gentoo_root

/test
echo `<test`

бесполезно

. test

аналогично, без libc уже ничего не сделаешь

anonymous ()
Ответ на: комментарий от anonymous

аналогично, без libc уже ничего не сделаешь

а перевести компьютер в режим suspend-to-disk — можно?

echo -n disk > /sys/power/state

потом вынуть жёсткий диск и с сохранённой на нём оперативной памятью (внутри swap).

(дальше ,как обычно, я придумать ни чего не могу)

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от anonymous

бесполезно

Вопрос был не в полезности, а в «ни создать файл, ни прочитать». Можно и создать, и прочитать.

аналогично, без libc уже ничего не сделаешь

libc ни при чём, в скрипте может быть echo -ne "longlineofdata" > /bin, которое создаст статический ELF. Но запустить его не получится, потому что права на выполнение не будет (даже если предварительно сделать umask 000). Может, кто-то другой придумает, как с этим справиться.

gentoo_root ★★★★★ ()
Последнее исправление: gentoo_root (всего исправлений: 1)
Ответ на: комментарий от gentoo_root

Взять решение от chmod -x chmod, запилить с его помощью сам чмод, дать ему чмод +х и чмодить дальше.

entefeed ☆☆☆ ()
Ответ на: комментарий от anonymous

Кстати, ведь /proc никто не отмонтировал, файлы оттуда не удаляются, стало быть из /proc/*/exe можно вытащить бинарники запущенных программ. Вот только нужно ещё и либы, их я не знаю как достать, но теоретически возможно.

gentoo_root ★★★★★ ()
Ответ на: комментарий от TheBear

Вопрос в другом, как починить если бы бекапа не было

Воспользоваться машиной времени предлагали?

andrew667 ★★★★★ ()
Ответ на: комментарий от gentoo_root

libc ни при чём, в скрипте может быть echo -ne «longlineofdata» > /bin, которое создаст статический ELF. Но запустить его не получится, потому что права на выполнение не будет (даже если предварительно сделать umask 000). Может, кто-то другой придумает, как с этим справиться.

Еще как причем, он не запуститься даже с правами. bash тебе выдаст сообщение, что файл не найден.

anonymous ()
Ответ на: комментарий от entefeed

Взять решение от chmod -x chmod, запилить с его помощью сам чмод, дать ему чмод +х и чмодить дальше.

А разве есть решение, которое возможно запустить в наших условиях? Насколько я знаю, все решения требуют запустить что-то, на чём уже есть право на выполнение (либо запустить динамический линкер, либо нужен другой файл с правом на выполнение, который можно переписать, либо запустить cp, чтобы скопировать с другой системы chmod). Либо же возможность выполнить chmod должна быть в одной из уже запущенных программ: если бы был не bash, а busybox, было бы изи.

gentoo_root ★★★★★ ()
Ответ на: комментарий от anonymous

Еще как причем, он не запуститься даже с правами. bash тебе выдаст сообщение, что файл не найден.

Неправда:

ideapad root # mkdir -p chroot/bin
ideapad root # echo 'main(){printf("hello!\n");}' | gcc -xc - -static -o chroot/bin/test
<stdin>: В функции «main»:
<stdin>:1:8: предупреждение: несовместимая неявная декларация внутренней функции «printf»
ideapad root # ldd chroot/bin/test
        не является динамическим исполняемым файлом
ideapad root # chroot chroot /bin/test
hello!
ideapad root # rm -rf chroot/
gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

Так даже лучше:

ideapad root # mkdir -p chroot/bin chroot/lib64 
ideapad root # cp /bin/bash /bin/rm chroot/bin
ideapad root # cp /lib64/{libreadline.so.6,libncurses.so.5,libc.so.6,ld-linux-x86-64.so.2} chroot/lib64
ideapad root # echo 'main(){printf("hello!\n");}' | gcc -xc - -static -o chroot/bin/test
<stdin>: В функции «main»:
<stdin>:1:8: предупреждение: несовместимая неявная декларация внутренней функции «printf»
ideapad root # chroot chroot /bin/bash
bash-4.3# rm -rf /lib64
bash-4.3# /bin/test
hello!
bash-4.3# exit
ideapad root # ls -lR chroot/
chroot/:
итого 0
drwxr-xr-x 2 root root 100 Янв 31 21:06 bin

chroot/bin:
итого 1724
-rwxr-xr-x 1 root root 856952 Янв 31 21:06 bash
-rwxr-xr-x 1 root root  76456 Янв 31 21:06 rm
-rwxr-xr-x 1 root root 825771 Янв 31 21:06 test
ideapad root #
gentoo_root ★★★★★ ()

убунту поставь, там не работает это и много чего тоже

amorpher ★★★★★ ()
Ответ на: комментарий от gentoo_root

Неправда:

Ну да, если проверять совсем другой случай без bash, то неправда.

anonymous ()
Ответ на: комментарий от amorpher

убунту поставь, там не работает это и много чего тоже

разве?

должно работать..

как же в Убунте смогли бы обхитрить Звёздочку (*) ? :-)

user_id_68054 ★★★★★ ()
Ответ на: комментарий от amomymous

А что, и такие ведь тоже есть xD
Я делал без бэкапа и ничего. Ну, конечно, без системы и хомяка остался, но ничего важного у меня не было.

DeadEye ★★★★★ ()

Lol, надо сразу было делать sudo dd if=/dev/zero of=/dev/sda

w1nner ★★★★★ ()
Ответ на: комментарий от w1nner

Патч Бармина всё совершенствуется :)
А может, кстати, задействовать /dev/urandom?

Hurenweibel ★★ ()
Ответ на: комментарий от user_id_68054

выкачать из сети

1. wget-а уже нет
2. любая запись куда-либо, кроме tmpfs, может привести к порче данных

Xellos ★★★★★ ()
Ответ на: комментарий от w1nner

А я так делал, пятнадцать лет назад, когда только начинал это всё... Правда там было cp file /dev/sdc1, но было, да.

Xellos ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.