LINUX.ORG.RU

BTRFS: rm: cannot remove 'xxx': No space left on device

 ,


0

5

В ознакомительном порядке начал осваивать перспективную (как пишут в сети) файловую систему - BTRFS. Создал виртуальный диск для на виртуальной машине (DEBIAN), игрался с ним, встал вопрос оптимизации реального дискового пространства на хосте. Для этого попробовал занулить свободное место на виртуальном диске, чтоб потом можно было его схлопнуть. Зануление проводил с помощью sfill:

#> sfill -l -l -z -f -v
Принцип работы этой утилиты заключается в создании гигантского пустого файла (с нулями), заполняющего всё оставшееся пространство, и последующем его удалении. Вот на удалении и возникла ошибка в заголовке. Гугление не помогло. Находил много подобных проблем (не всегда таких же), но решений предложено гораздо меньше и ни одно из них мне не помогло. Смоделировал такую же ситуацию с пустым (изначально) виртуальным диском, но не с первого раза. Вот что имеем:
#> btrfs fi df /mnt
	System, single: total=4.00MiB, used=4.00KiB
	Data+Metadata, single: total=8.00GiB, used=7.98GiB
	GlobalReserve, single: total=164.00MiB, used=145.38MiB
#> mount | grep /dev/sdb
	/dev/sdb on /mnt type btrfs (rw,noatime,nodatasum,nodatacow,nossd,nospace_cache,clear_cache,enospc_debug)
#> ls -Al /mnt
	total 8355588
	-rw------- 1 root root 8556122112 Nov 15 08:14 oooooooo.ooo
#> rm -r -f /mnt/oooooooo.ooo
	rm: cannot remove '/mnt/oooooooo.ooo': No space left on device
#> echo > /mnt/oooooooo.ooo
	bash: /mnt/oooooooo.ooo: No space left on device
#> dmesg
	...
	[19226.492770] BTRFS info (device sdb): setting nodatacow, compression disabled
	[19226.492777] BTRFS info (device sdb): force clearing of disk cache
	[19226.492782] BTRFS info (device sdb): disabling disk space caching
	[19226.492786] BTRFS: has skinny extents
	[19226.501538] BTRFS: detected SSD devices, enabling SSD mode
	[19658.904879] BTRFS info (device sdb): disk space caching is enabled
	[19658.904883] BTRFS: has skinny extents
	[19658.912321] BTRFS: detected SSD devices, enabling SSD mode
	[19719.743095] BTRFS info (device sdb): disk space caching is enabled
	[19721.795072] BTRFS info (device sdb): disk space caching is enabled
	[19722.763731] BTRFS info (device sdb): disk space caching is enabled
	[19917.465373] BTRFS info (device sdb): not using ssd allocation scheme
	[19917.465388] BTRFS info (device sdb): disabling disk space caching
	[19917.465393] BTRFS info (device sdb): setting nodatacow, compression disabled
	[19917.465402] BTRFS info (device sdb): force clearing of disk cache
	[19917.465405] BTRFS: has skinny extents
	[19934.376503] BTRFS info (device sdb): disabling disk space caching
	[19939.483187] BTRFS info (device sdb): disabling disk space caching
	[19945.093364] BTRFS info (device sdb): disabling disk space caching
	[19947.757522] BTRFS info (device sdb): disabling disk space caching
Видно, что диск забит на 99% единственным файлом, удалить который невозможно. Проверка файловой системы ошибок не выдает. Все файлы на диске доступны для чтения. Пробовал манипуляции с монтированием на чтение и последующим двойным перемонтированием на запись, пробовал опции монтирования nodatacow, nospace_cache, clear_cache, enospc_debug. Соответственно ничего не помогло. У меня идеи кончились, решил зарегистрироваться на форуме, написать сюда. Понятно, что в случае с виртуальным диском это не проблема. Но что делать, если диск реальный и на нем есть полезные данные. Можно их скопировать на другой носитель, опять же при его наличии, а дефектный отформатировать. А есть ли альтернативный путь?

Ответ на: комментарий от val-amart

«дыры» это если ты не вкурсе когда ты например записываешь байт, потом пишешь следующий с offset, например сделав fseek(3)

Спасибо, у меня действительно было неверное представление о «дырах».

я рекомендую внимательно читать и понимать до конца маны

Очень ценный совет. К сожалению маны не всегда пишутся на понятном языке, не всегда разъясняют используемую терминологию. Для того чтобы ликвидировать пробелы в понимании и существуют такие форумы как этот.

alexander_baranov ()
Ответ на: комментарий от alexander_baranov

К сожалению маны не всегда пишутся на понятном языке,

На русском манов очень мало. Почти что нет. Поэтому довольствуйся непонятным английским.

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