Моя ставка в том, что ваш каталог на самом деле является подуровнем btrfs. Я сделал тест. Когда я пытаюсь выполнить rm
свой тестовый объем, я получаю «Операция не разрешена».
Если я прав, в вашем случае должно работать следующее:
sudo btrfs subvolume delete foo
Я понимаю, что ваш каталог уже пуст, но в общем случае вам, возможно, придется очистить его заранее.
Дальнейшее объяснение по запросу:
Подобъем - это часть файловой системы с собственной и независимой иерархией файлов / каталогов. Подобъемы могут делиться экстентами файлов.
Вы можете узнать больше из btrfs вики . Основными причинами, по которым можно создать подобъем вместо обычного каталога, являются:
- подобъем может быть смонтирован как отдельная файловая система со своими собственными параметрами (сравните: хотя вы можете смонтировать обычный каталог с помощью bind mount, он должен существовать в уже смонтированной файловой системе; подобъем btrfs может быть легко смонтирован как корневая файловая система
/
); - Можно создать моментальный снимок подобъема, который является отдельным подобъемом, который первоначально разделяет все экстенты файла с подобъемом источника.
Практический пример:
Моя файловая система btrfs имеет следующую внутреннюю структуру (имейте в виду, что эта структура отличается от структуры каталогов, видимой системой; точки монтирования принадлежат последней):
/ # btrfs root filesystem mounted as /mnt/ssd/ @ # a subvolume I use as the root filesystem (mounted as /) @backups @-20161215-1-working # a snapshot of @ just in case
Давайте предположим, что я хочу связываться с моей системой. В качестве меры предосторожности я сначала создаю снимок:
cd /mnt/ssd/@backups sudo btrfs subvolume snapshot ../@ @-20161224-1-just_in_case
Я делаю это из моей рабочей системы, и это не занимает много времени. Изначально он также не занимает места на диске. Дополнительное пространство будет выделено позже, когда соответствующие файлы и деревья каталогов начнут различаться.
Затем я могу даже сломать свою систему, которая находится внутри @
подобъема. Пока @backups/@-20161224-1-just_in_case
подобъем не поврежден, я могу заменить @
его резервной копией, как будто ничего не произошло. В худшем случае мне нужно загрузиться с живого дистрибутива, чтобы сделать это. Но если мой загрузчик (GRUB2) по-прежнему работает, я могу отредактировать его запись во время загрузки и временно использовать @backups/@-20161224-1-just_in_case
вместо @
подсоба в качестве корневой файловой системы. Затем из вновь работающей системы я делаю:
cd /mnt/ssd/ sudo btrfs subvolume delete @ # I may have to empty it first sudo btrfs subvolume snapshot @backups/20161224-1-just_in_case @
После этого я перезагружаюсь. Система восстановлена.