LINUX.ORG.RU

fsck.ext4 root


0

0

Дома, кошка грелась на упсе, и случайно нажала на отключение этого самого девайса.

После включения, я, имея ssh доступ извне прогнал команду fsck.ext4 /dev/sd3 (корень), со всем согласился (!!!) и теперь, пока не отвалился по ssh вижу, что куча файлов снесено:

#dpkg --listfiles grub-pc | grep «/usr/lib/grub»:
/usr/lib/grub

#ls /usr/lib/grub
ls: невозможно получить доступ к /usr/lib/grub: No such file or directory

#mount -n -o remount,rw -f /

# mount
/dev/sda3 on / type ext4 (rw,errors=remount-ro)

# touch /1
touch: невозможно выполнить touch для `/1': Read-only file system

Вот теперь сижу и теру затылок, чтоже делать, как спасти систему???

★★

Ответ на: комментарий от CyberTribe

> fsck на примонтированной фс

Угу..

первый раз в подобной ситуации:
1) список пакетов собрал,
2) /etc скопировал,
3) пакетики сборные забекапил

Я ничего не упустил?

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

[РЕШЕНО]

В общем все удачно запустилось :-)

Решил я проверить, какие пакеты потеряли свои файлы, готового решения почему то не нашел, поэтому набыдлокодил тут:

import os

def _check_package(package):
	cmd="dpkg --listfiles "+package
	for file in os.popen(cmd).readlines():
		fname = file[:-1]
		if not os.path.exists(fname):
			if not os.path.isdir(fname):
				print package, fname

if __name__ == "__main__":
	cmd="dpkg --get-selections | grep 'install' |  awk '{print $1}'"
	for lines in os.popen(cmd).readlines():
		package=lines[:-1]
		_check_package(package)
vadv ★★
() автор топика

В следующий раз лучше вот так сделать:

# shutdown -rF now

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

>Делал fsck на примонтированной фс?

Ставь с нуля систему, ибо ССЗБ.


ext4 в этом смысле очень ненадёжна. Дважды уже обрушивал её, делая fsck в стартовой консоли восстановления. Один раз восстановил, вытащив всё нужное из lost+found (хотя, пока разобрался какое имя каталога или файла что обозначает - весьма притомился), другой, когда /usr повредился особенно жёстко, развернул систему из stage1 и пересобрал мир (ибо Gentoo). Так что, можно сказать, обходилось, но такая тенденция не радует.

KRoN73 ★★★★★
()
Ответ на: [РЕШЕНО] от vadv

Оказалось, что файлы присутствуют, но они побиты:

cd /
for package in `dpkg --get-selections | grep 'install' |  awk '{print $1}'`
do
        if [ -f /var/lib/dpkg/info/${package}.md5sums  ]; then
                md5sum -c /var/lib/dpkg/info/${package}.md5sums 1>/dev/null 2>/dev/null
                if [ $? != 0 ]; then
                        echo "Changed md5sum for file(s) in package ${package}"
                fi
        else
                echo "Not found md5sums file for package:${package}"
        fi
done

vadv ★★
() автор топика
Ответ на: [РЕШЕНО] от vadv

> Решил я проверить, какие пакеты потеряли свои файлы, готового решения почему то не нашел, поэтому набыдлокодил тут:

Не надо быдлокодить, всё набыдлокодено до нас...

apt-get install debsums

Да, дебиан (и всё остальное на его основе) сосёт из коробки, так как никаких средств проверки целостности в его пакетных менеджерах нет и надо ставить руками сей костыль. А кто его ставит?

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