При наличии попробовать dc
:
echo "2 k 3.2 3 [1p] sa
Обратите внимание, что вышеупомянутое будет также использовать 2 десятичной точности и произведет 1, если первое число (3.2 в вышеупомянутом примере) будет больше, чем второе число (3 выше). Но иначе ничего не произведет.
dc
bc
брат, в документации GNU описал с теми же “словами” калькулятора произвольной точности. В некоторых дистрибутивах они поставляются в том же пакете, в других дистрибутивах они упаковываются отдельно.
Можно вызвать fsck
во время начальной загрузки путем передачи fsck.mode=force
(auto
значение по умолчанию и skip
может использоваться для пропуска проверки вообще) как параметр командной строки ядра (с systemd
v. 213, существует также второй параметр: fsck.repair
- управлять как fsck
буду иметь дело с грязными файловыми системами при начальной загрузке; возможные значения: preen
зафиксировать, что может быть безопасно зафиксировано, yes
ответить на да на все вопросы и no
значение по умолчанию).
Отметьте это systemd-fsck
не знает деталей об определенных файловых системах и просто выполняет средства проверки файловой системы, характерные для каждого типа файловой системы (/sbin/fsck.*
).
Теперь, если Ваша файловая система xfs
или btrfs
это выполнится /sbin/fsck.xfs
или /sbin/fsck.btrfs
соответственно. Если это, кажется, не работает, возможно, необходимо проверить страницу руководства на fsck.xfs
или fsck.btrfs
соответственно и исследуйте содержание упомянутых файлов в /sbin
.
Единственный способ проверить систему BTRFS — использовать ее собственный инструмент btrfs check
, у вас должен быть размонтирован корневой том, поэтому единственный вариант — действительно загрузиться с livecd.
Любой совет, который в конечном итоге приводит к звонку fsck.btrfs
, неверен, это просто заглушка, которая выводит сообщение и ничего не делает. Сюда входят ответы с параметрами командной строки ядра fsck.mode
или файлами .forcefsck
.
[root@nuc ~]# cat /usr/sbin/fsck.btrfs
#!/usr/bin/sh -f
AUTO=false
while getopts ":aApy" c
do
case $c in
a|A|p|y) AUTO=true;;
esac
done
shift $(($OPTIND - 1))
eval DEV=\${$#}
if [ ! -e $DEV ]; then
echo "$0: $DEV does not exist"
exit 8
fi
if ! $AUTO; then
echo "If you wish to check the consistency of a BTRFS filesystem or"
echo "repair a damaged filesystem, see btrfs(8) subcommand 'check'."
fi
exit 0
Однако, если вы просто не уверены, что все в порядке после отключения питания или чего-то подобного, btrfs check
может выполнить проверку смонтированной файловой системы только для чтения:
[root@nuc ~]# btrfs check --readonly --force /dev/sda5
Opening filesystem to check...
WARNING: filesystem mounted, continuing because of --force
Checking filesystem on /dev/sda5
UUID: 8c44de9c-c91b-4ac4-857b-da191dc62274
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space cache
[4/7] checking fs roots
[5/7] checking only csums items (without verifying data)
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
found 3628683264 bytes used, no error found
total csum bytes: 3093864
total tree bytes: 136937472
total fs tree bytes: 126074880
total extent tree bytes: 6455296
btree space waste bytes: 23047273
file data blocks allocated: 5676253184
referenced 4705763328
/etc/default/grub
, затем добавьтеfsck.mode=force
к значениюGRUB_CMDLINE_LINUX_DEFAULT
. Затем выполненныйupdate-grub
иreboot
. – Yvan 06.09.2016, 11:38