Получили 'Input/output error'.
Пришлось исправлять ситуацию.
Опишу что как делать и какие подводные камни можем встретить.
Описание делается на примерах из интернета, реально ситуация была когда свободно было 0 места.
1. Смотрим как называется наш раздел
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 68G 45G 21G 69% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sdb1 2.8T 2.6T 195G 94% /data
2. Отмонтируем раздел
# umount /data
umount: /data: device is busy
3. Пробуем по другому
# umount -f /data
umount2: Device or resource busy
umount: /data: device is busy
4. Ещё один вариант
# umount -l /data
сейчас всё нормально, кажется раздел отмонтирован
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 68G 45G 21G 69% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
'fsck' этот раздел не берёт, предлагает использовать 'xfs_repair', или 'xfs_check', так и быть, пробуем
5. Проверка раздела на ошибки
# xfs_repair /dev/sdb1
xfs_repair: /dev/sdb1 contains a mounted filesystem
fatal error -- couldn't initialize XFS library
6. Пробуем по другому
# xfs_check /dev/sdb1
xfs_check: /dev/sdb1 contains a mounted and writable filesystem
fatal error -- couldn't initialize XFS library
Выходит не отмонтировалась наша ФС корректно.
7. Примонтируем её обратно
# mount /data
8. Смотрим кто не отпускает
# fuser -vm /dev/sdb1
USER PID ACCESS COMMAND
/dev/sdb1: root 4567 f.... nautilus
root 4590 f.... trashapplet
root 4890 ..c.. bash
9. Прибиваем
# kill 4567
# kill 4590
# kill 4890
10. Снова отмонтируем ФС
# umount /data
11. Попробуем запустить проверку
# xfs_repair /dev/sdb1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- agno = 4
- agno = 5
- agno = 6
Кажется что-то у нас всё таки получилось.
Заметка
Сначала нужно использовать xfs_check, а только после того как он не помогает можно использовать xfs_repair, о чём говорит следующее предупреждение.
# xfs_check -s /dev/sda1
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed. Mount the filesystem to replay the log, and unmount it before
re-running xfs_check. If you are unable to mount the filesystem, then use
the xfs_repair -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption -- please attempt a mount
of the filesystem before doing this.
Здесь нам предлагают снова примонтировать ФС, потом отмонтировать и запустить снова xfs_check. Если xfs_check не запустится, то нужно запустить xfs_repair, который должен удалить какой-то лог и исправлять ФС без него. Я к сожалению не большой специалист в XFS.
Использованы материалы:
solarcurve.blogspot.com
discuss.pivotal.io
и ещё что-то.