Почему с отвалившегося ? С полностью загруженного, но с неустановленными другими vim
В критических ситуациях альтернатива на vi как мёртвому припарка:
/usr/bin/vim (сбой файловой) -> ./etc/альтернатива (корень) -> /bin/vi (корень)
Как и наоборот.
Если редакторы и его компоненты лежат в /usr и эта файловая дала сбой, а в /bin/ физически нет редактора, то ничего кроме cat+ed+sed пользователю не останется.
Если /usr в Федоре отвалится и там где просимлинковали /bin и /sbin, то там целиком всё нафик поотваливается и лайв там без вариантов. Ну как у виндузятников, если уж рухнуло, то всё целиком.
В альтах может быть:
/usr это /usr, а всё остальное это базовая система с полным набором реанимации и разные там лайвы ей не нужны чтобы восстановить /usr.
В этом вся фишка Unix-подобных систем:
$ ldd -v /bin/vi
linux-gate.so.1 (0xb777b000)
libselinux.so.1 => /lib/libselinux.so.1 (0xb7739000)
libtinfo.so.5 => /lib/libtinfo.so.5 (0xb7715000)
libacl.so.1 => /lib/libacl.so.1 (0xb770b000)
libc.so.6 => /lib/libc.so.6 (0xb758e000)
libpcre.so.3 => /lib/libpcre.so.3 (0xb7547000)
libdl.so.2 => /lib/libdl.so.2 (0xb7542000)
/lib/ld-linux.so.2 (0x80086000)
Version information:
/bin/vi:
libacl.so.1 (ACL_1.0) => /lib/libacl.so.1
libc.so.6 (GLIBC_2.11) => /lib/libc.so.6
libc.so.6 (GLIBC_2.15) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
/lib/libselinux.so.1:
libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_2.8) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.7) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
/lib/libtinfo.so.5:
ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.15) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
/lib/libacl.so.1:
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
/lib/libc.so.6:
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
/lib/libpcre.so.3:
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
/lib/libdl.so.2:
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_PRIVATE) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
$ ldd -v /sbin/fsck
linux-gate.so.1 (0xb77a6000)
libmount.so.1 => /lib/libmount.so.1 (0xb7737000)
libblkid.so.1 => /lib/libblkid.so.1 (0xb76e9000)
librt.so.1 => /lib/librt.so.1 (0xb76e0000)
libc.so.6 => /lib/libc.so.6 (0xb7563000)
libselinux.so.1 => /lib/libselinux.so.1 (0xb7538000)
/lib/ld-linux.so.2 (0x8004d000)
libuuid.so.1 => /lib/libuuid.so.1 (0xb7532000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7516000)
libpcre.so.3 => /lib/libpcre.so.3 (0xb74cf000)
libdl.so.2 => /lib/libdl.so.2 (0xb74ca000)
Version information:
/sbin/fsck:
librt.so.1 (GLIBC_2.2) => /lib/librt.so.1
libblkid.so.1 (BLKID_1.0) => /lib/libblkid.so.1
libblkid.so.1 (BLKID_2.17) => /lib/libblkid.so.1
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.8) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.7) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libmount.so.1 (MOUNT_2.20) => /lib/libmount.so.1
libmount.so.1 (MOUNT_2.21) => /lib/libmount.so.1
libmount.so.1 (MOUNT_2.24) => /lib/libmount.so.1
libmount.so.1 (MOUNT_2.19) => /lib/libmount.so.1
/lib/libmount.so.1:
librt.so.1 (GLIBC_2.2) => /lib/librt.so.1
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
libblkid.so.1 (BLKID_1.0) => /lib/libblkid.so.1
libblkid.so.1 (BLKID_2.17) => /lib/libblkid.so.1
libblkid.so.1 (BLKID_2.15) => /lib/libblkid.so.1
libc.so.6 (GLIBC_2.9) => /lib/libc.so.6
libc.so.6 (GLIBC_2.15) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.8) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.7) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.17) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.6) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
/lib/libblkid.so.1:
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
libuuid.so.1 (UUID_1.0) => /lib/libuuid.so.1
libc.so.6 (GLIBC_2.3.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.8) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.7) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.17) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
/lib/librt.so.1:
libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_PRIVATE) => /lib/libc.so.6
libpthread.so.0 (GLIBC_2.2) => /lib/libpthread.so.0
libpthread.so.0 (GLIBC_2.3.2) => /lib/libpthread.so.0
libpthread.so.0 (GLIBC_PRIVATE) => /lib/libpthread.so.0
libpthread.so.0 (GLIBC_2.1) => /lib/libpthread.so.0
libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
/lib/libc.so.6:
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
/lib/libselinux.so.1:
libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_2.8) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.7) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
/lib/libuuid.so.1:
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
/lib/libpthread.so.0:
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
libc.so.6 (GLIBC_PRIVATE) => /lib/libc.so.6
/lib/libpcre.so.3:
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
/lib/libdl.so.2:
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_PRIVATE) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
Тоже к вопросу об инструментах реанимации:
Вот в альтах например, mount лежит в /bin, как тому и положено быть
$ ll /bin/mount
-rws--x--x 1 root root 38880 ноя 21 18:33 /bin/mount
И только клинический дебил может догадаться положить его в /usr.