Dec 03, 2008 03:06
А мне было так трудно поверить в то, что такое может случиться прямо-таки у меня сегодня, вчера, завтра, и самое главное -- действовать исходя из очень вероятной такой возможности:
$ for f in /bin/*; do if cat "$f" &>/dev/null; then :; else echo "$f bad"; fi done
/bin/arch bad
/bin/awk bad
/bin/basename bad
/bin/bash2 bad
/bin/bunzip2 bad
/bin/bzcat bad
/bin/bzip2 bad
/bin/bzip2recover bad
/bin/chgrp bad
/bin/chmod bad
/bin/chown bad
/bin/clock_unsynced bad
/bin/cp bad
/bin/cpio bad
/bin/csh bad
/bin/cut bad
/bin/date bad
/bin/dd bad
/bin/df bad
/bin/dmesg bad
/bin/dnsdomainname bad
/bin/domainname bad
/bin/du bad
/bin/dumpkeys bad
/bin/echo bad
/bin/ed bad
/bin/egrep bad
/bin/ex bad
/bin/false bad
/bin/fgrep bad
/bin/find bad
/bin/gawk bad
/bin/genromfs bad
/bin/getopt bad
/bin/getuseruid bad
/bin/grep bad
/bin/gunzip bad
/bin/gzip bad
/bin/head bad
/bin/hostname bad
/bin/install bad
/bin/ipv6calc bad
/bin/kbd_mode bad
/bin/kill bad
/bin/link bad
/bin/ln bad
/bin/loadkeys bad
/bin/login bad
/bin/ls bad
/bin/lsmod bad
/bin/mail bad
/bin/mkdir bad
/bin/mkfifo bad
/bin/mknod bad
/bin/mktemp bad
/bin/more bad
/bin/mount bad
/bin/mountpoint bad
/bin/mv bad
/bin/netstat bad
/bin/nice bad
/bin/nisdomainname bad
/bin/pcregrep bad
/bin/pidof bad
/bin/ping bad
/bin/ping6 bad
/bin/ps bad
/bin/pwd bad
/bin/rbash bad
/bin/readlink bad
/bin/red bad
/bin/rm bad
/bin/rmdir bad
/bin/rpm bad
/bin/runas bad
/bin/rvi bad
/bin/rview bad
/bin/sed bad
/bin/setfont bad
/bin/shell-args bad
/bin/shell-config bad
/bin/shell-error bad
/bin/shell-regexp bad
/bin/sleep bad
/bin/sort bad
/bin/stty bad
/bin/su bad
/bin/sync bad
/bin/tar bad
/bin/tcsh bad
/bin/touch bad
/bin/tput bad
/bin/tracepath bad
/bin/tracepath6 bad
/bin/traceroute bad
/bin/traceroute6 bad
/bin/true bad
/bin/umount bad
/bin/uname bad
/bin/unicode_start bad
/bin/unicode_stop bad
/bin/unlink bad
/bin/usleep bad
/bin/vi bad
/bin/vitmp bad
/bin/wc bad
/bin/xargs bad
/bin/ypdomainname bad
/bin/zcat bad
$ for f in /bin/*; do if cat "$f" &>/dev/null; then echo "$f OK"; fi done
/bin/bash OK
/bin/cat OK
/bin/sh OK
/bin/tail OK
$
Сама ошибка вот:
$ ls
-bash: /bin/ls: Input/output error
$ cat /bin/ls
cat: /bin/ls: Input/output error
$
ls "пропал" у меня на глазах, несколько минут назад он ещё был рабочий (всё остальное уже нет). sshd перестал пускать так же: этот шелл я ещё успел открыть, хоть уже почти ничего не работало.
А я дурак дурак дурак, откладывал backupы на попозже, думал, вместо backupа лучше сделать что-нибудь увлекательное.
У меня никогда раньше не сыпался ни один диск! Даже лет 10 работают и ничего.
(Любопытное замечание. А bash, tail etc., по-моему, "держатся" ещё только благодаря тому, что они запущены и были всегда в памяти, до перечитывания диска дело не доходит почему-то в их случае.)
(Вот я думаю: имеет ли теперь значение его как можно быстрее выключить? read-only ФС и так уже стали сами.)
Мораль для всех: ничего такого, чтобы вы не хотели потерять, никогда не храните только в одном месте! В одной сумке. В одной квартире.
(Ещё лучше, если вы можете публиковать всё, маленькими кусочками, часто, в процессе изменений, чтобы читатели были вашими backup-ами (L.Torvalds) или хотя бы стимулами к сохрнению ещё куда-то.)