Файловая система ReiserFS была разработана специально для операционной системы Linux Гансом Райзером и компанией Namesys. Она стала первой журналированной файловой системой, которую приняли в ядро и развивалась тогда, когда про журналирование файловых систем Ext еще не планировалось.
Первая версия ReiserFS вышла в 2001 году, на то время, файловая система была очень интересна и имела множество новых возможностей, но потом ее развитие замедлилось и теперь ее обогнали такие известные файловые системы, как Btrfs и ZFS. В этой статье будет рассмотрена файловая система ReiserFS, мы поговорим о ее особенностях, а также детально разберем как создавать разделы и работать с ней.
Содержание статьи
Особенности файловой системы ReiserFS
Как я уже сказал, первая версия файловой системы ReiserFS вышла в 2001 году и на то время, она была очень перспективной. Это эффективная файловая система, которая очень быстро работает с небольшими файлами и поддерживает журналирование для быстрого восстановления в случае проблем. В основе структуры файловой системы, также как и для ReiserFS лежат деревья. Максимальный размер файла составляет 1 экзабайт, а количество файлов, которые находятся на одном разделе около четырех миллиардов.
Кроме того, файловая система поддерживает быструю перестройку своего дерева и имеет обширные возможности восстановления. Она быстрее файловых систем семейства ext4. И самое главное - это то, что Reiserfs можно использовать в качестве основной файловой системы для корня, также как и ext4. Но ее минус в том, что вы не можете использовать фоновое шифрование.
На этом особенности Reiserfs не завершаются. Она позволяет помещать небольшие файлы и хвосты файлов в один блок, это снижает занимаемое ими место.
На данный момент существуют две стабильные версии файловой системы. Это Reiser3 или как ее еще называют ReiserFS и новая версия Reiser4. В ней было добавлено шифрование, улучшена производительность и многое другое. Она вышла в 2004 году. Но после ареста руководителя, Ганса Рейзера, разработка файловой системы замедлилась, а новая версия до сих пор не включена в состав ядра. Поэтому мы будем рассматривать только возможности Reiser3.
Файловая система Raiserfs
Вы узнали основные особенности файловой системы и можете принять решение нужно ли вам ее использовать. Дальше мы рассмотрим как создавать разделы, изменять их размер и восстанавливать поврежденную Reiserfs на примере дистрибутива Ubuntu.
Для работы с ReiserFS нам понадобится набор утилит Reiserfsprogs. Обычно, этот пакет уже установлен в большинстве дистрибутивов, но если у вас его нет, то вы можете его очень просто установить. Для этого наберите:
sudo apt install reiserfsprogs
После этого можно перейти к работе с файловой системой. Бывает, что система говорит, что утилита установлена, но команд для работы с файловой системой нет. Тогда просто удалите ее и установите заново:
sudo apt purge reiserfsprogs && sudo apt install reiserfsprogs
1. Создание раздела
Reiserfs - это обычная файловая система, без всяких наворотов, вроде встроенных менеджеров разделов и пулов, поэтому создать такую фс на разделе очень просто. Для этого используется утилита mkreiserfs. Рассмотрим ее синтаксис и опции:
$ sudo mkreiserfs опции устройство размер
Опции указывают параметры файловой системы, устройство - раздел жесткого диска, на котором вы собираетесь разместить файловую систему, а размер, это необязательный параметр, который указывает нужно ли заполнять все доступное место на разделе. Рассмотрим основные опции:
- -b - размер одного блока файловой системы, может быть от 512 до 8192 байт;
- -h -указать хэш функцию, с помощью которой будут сортироваться файлы и директории r5, rupasov или tea;
- -u - позволяет задать UUID раздела;
- -l - метка раздела;
- -j - файл, в котором будет размещен журнал;
- -s - размер журнала файловой системы;
- -B - файл с адресами битых блоков;
- -d - вывести отладочную информацию.
Но большинство из них вам не понадобится. Вы можете создать раздел и нормально им пользоваться используя опции по умолчанию. Например, создадим файловую систему на разделе /dev/sda20:
sudo mkreiserfs /dev/sda20
После ввода команды вам придется подтвердить форматирование раздела.
2. Монтирование ReiserFS
Монтирование файловой системы аналогично другим популярным ФС, таким как Ext4 или XFS. Для этого используется команда mount:
sudo mount /dev/sda20 /mnt/
Все, после этого вы можете пользоваться этим разделом и копировать на него файлы. Некоторыми возможностями файловой системы можно управлять через опции монтирования. Но большинство из них стандартны для всех файловых систем, поэтому мы не будем их рассматривать. Но есть и особенные опции. Как вы помните, файловая система Reiserfs позволяет упаковывать хвосты файлов в один блок, что позволяет экономить пространство. Но это снижает производительность. Чтобы отключить эту возможность используется опция notail:
sudo mount -o notail /dev/sda20 /mnt/
Также вы можете указать эту опцию во время автоматического монтирования с помощью /etc/fstab:
sudo vi /etc/fstab
Эта строчка сообщает системе инициализации, что раздел /dev/sda20 стоит монтировать в папку /mnt с опцией notail.
3. Изменение раздела
Утилита reiserfstune позволяет изменить параметры, которые вы могли задать во время создания файловой системы. Например, можно изменить размер журнала, адрес журнала, UUID, файл битых секторов, а также частоту проверок на ошибки. Синтаксис такой же, как и у mkreiserfs:
$ sudo reiserfstune опции устройство
Опции те же, но только стоит выделить несколько из них:
- -c - установить интервал в днях между проверками файловой системы на ошибки;
- -C - установить дату последней проверки;
- -m - установить максимальное количество монтирований перед проверкой;
- -M - установить текущее количество монтирований с момента текущей проверки.
Например, скажем, что файловую систему нужно проверять каждый день:
sudo reiserfstune -c 1 /dev/sda20
4. Восстановление Reiserfs
При резком выключения компьютера, файловая система может быть повреждена. Reiserfs имеет различные инструменты для восстановления. Для этого используется утилита reiserfsck. Сначала проверим файловые системы:
sudo reiserfsck --check /dev/sda20
Для подтверждения выполнения проверки необходимо набрать Yes, причем не y, не yes, и именно полностью и с большой буквы. Если вы получаете ошибки чтения корневого блока, нужно перестроить дерево файловой системы, на основе существующих ветвей дерева:
sudo reiserfsck --scan-whole-partition --rebuild-tree /dev/sda20
Этот процесс включает сканирование всей файловой системы, поэтому займет много времени. Каждая файловая система имеет суперблок, в котором содержится информация про тип файловой системы, ее размер и основные метаданные. Если этот блок был поврежден, его тоже можно восстановить:
sudo reiserfsck --rebuild-sb /dev/sda20
После этого восстановление файловой системы будет завершено и вы можете ее монтировать. Если были повреждены файлы, то вы можете найти их в папке losst_found.
Выводы
В этой статье мы рассмотрели файловую систему ReiserFS. Это была очень перспективная файловая система на момент начала ее разработки, но после ареста создателя разработка очень замедлилась. Такие современные файловые системы, как Btrfs и ZFS уже давно ее обогнали. Надеюсь информация из статьи была полезной для вас. На завершение видео для начинающих, зачем разделать диск на разделы и зачем нужны файловые системы:
https://youtu.be/h8YUNtTpiDk
Это все понятно, спасибо. Не понятно когда, какую и зачем лучше использовать ту или иную файловую систему.
Вот вам смысл самых популярных ФС:
ext4 - это NTFS от линукса, универсальная система, одинаково подходит для всего, с журналом
raiserfs - это пережиток прошлого, когдато первая ФС с журналом, которая пыталась сместить ext3 с трона, нынче бесполезна, все что она делает ext4 делает так же или лучше.
btrfs - продвинутая новая ФС с кучей функций, для тех кому оно все надо. Пока что в активной разработке, не рекомендуется для ежедневного использования, тем более что ее возможности не сильно нужны на десктопе
ZFS - это то, что пытается воссоздать и переплюнуть btrfs, очень схожая по функционалу продвинутая ФС, которая изза лицензии не может быть включена в ядро Linux, потому поставляется отдельно. Эта ФС очень знаминита своим режимом RAIDZ для массивов дисков, хорошо подходит для огромных банков данных
F2FS - файловая система от Samsung для флеш памяти - именно для сырой флеш памяти. Оптимизирована, уменьшает износ и увеличивает производительность, но повторюсь - на сырой флеш памяти. На SSD дисках у которых есть контроллер она ничего не даст, а вот на Compact Flash карте или на NAND чипе - будет гораздо лучше других работать
В принципе это все которые не вдаваясь в детали надо знать рядовым юзерам. В ядре есть еще JFS, XFS, NILFS, и тд, но они очень узкоспециализированы.
Глупость написали. Давайте заново по очереди на фактах, а не лозунгах.
ext2 - первая фс ядра linux, ничем особо не отличается и основана на старых технологиях. не имеет журнала.
reiser - первая журналируемая фс в ядре linux, на момент включения - передовые технологии, основана на советской и российской научной школами, написана немецким ученым работавшим в американских и российских структурах (Ханс Райзер).
ext3 - улучшенный драйвер ext2 c добавленным журналом, на разработках reiser, но та же старая структура.
ext4 - заново написаный драйвер с улучшениями из reiser, может управлять ext3 и ext2, но такой же старый формат
reiser4 - первая cow система с совсем другой, модулярной структурой (плагины) и тремя аллокаторами. Оптимизирует себя в процессе работы, экономит место, позволяет менять формат данных на диске. Сейчас 2022 и f2fs только пытается создать умный аллокатор чтобы без надобности не фрагментировать как это обычно делает cow. Её продвижение в ядро заранее блокировали по политическим(!) причинам. После того как ЦРУ и DARPA провоцировало ситуацию преведшую к убийству Хансом Нины(!), разрабатывается Эдуардом Шишкиным. Внимательно читайте kernel reiser4 wiki.
btrfs - Крис Мансон, работавший в Namesys над reiser, создал этот продукт со товарищами, не имея академического образования на экспериментах. Имеет системный дефект, приводящий к громадной фрагментации свободного места, легкому повреждению b-деревьев и неспособности правильно управлять дисковым пространством. Потому что писали его не знающие люди, как те кто писал reiser, а самоучки без понимания предмета - куча фич, но абсолютно безграмотное их использование.
zfs - писалось учеными со знаниями как и reiser, cow не имеет оключения и предназначено для хранения данных. Не подходит для частой перезаписи (кэши, VMы, корни). Специально писалась под несовместимой с linux лицензией, чтобы доставить им головной боли как месть за уничтожение sun, которая создавалась профессионалами желающими соотвествующей оплаты, и програла хайповому, более дешевому linux.
nilfs - cow реализованная в форме принудительно-линейного лога для бесконтроллерных NAND (для бесконтроллерных!). Не имеет механизмов проверки, мертворожденный исследовательский проект.
f2fs - фс на cow для чипов с контроллером (НЕ для бесконтроллерных, НЕ для сырой памяти - для систем с КОНТРОЛЛЕРОМ), принципиальная разница с ext4 - разбрасывает поток на 6 зон и фрагментирует как бешенная. Основной уклон на скорость и скорость есть, пока не заполнит 50% места, потом идут проблемы, поэтому недавно добавлили встроенный сборщик мусора и недавно появились исследования чтобы добавить гибридный аллокатор, такой же как есть в reiser4 уже 10 лет, но это замедляет скорость, где она падает на уровень ext4. Имеет ряд неудобств - это постоянно меняющийся формат диска без обратной поддержки (фс созданая на ядре 4.10 не сможет быть прочинанной на ядре 4.2), отсутствие какой-то безопасности для данных. Она создана для мобильных телефонов, где четко разграничено пространство для ОС, для меняющихся данных которые можно стереть и для копии данных пользователя которые хранятся в облаке.
xfs - мамонт времен ext, который имеет лучшую скорость в линейной записи, но гораздо худшую безопасность для структур фс.
Какую фс использовать на десктопе? Для системы - ext4 либо reiser4, для быстрого выполнения на nvme контроллерах - f2fs и периодические бэкапы на zfs, для хранения большого количество данных - ext4, либо reiser4, либо zfs.
А дайте-ка почитать подробнее о ваших доводах про btrfs, или, если это ваши личные, хотелось бы подробностей. Т.к. по моему мнению - назвать эти проблемы (о которых можно долго дискутировать) - системным дефектом, явно перебор.
Интересно, зачем Losst решили гроб раскопать, давно не слышал про эту систему. Толку от нее мало, с тех пор как в ext4 добавили журнал. Есть еще Raiser4, но я не думаю что его вообще в ядро добавят - авторы сильно враждуют с меинтейнерами ядра о том, что надо разрешить ФС иметь свои плагины. Меинтейнеры шлют их лесом и говорят что модули есть и все, больше ничего не надо. Да и с развитием BTRFS и стабильной работой ZFS надо ли вообще оно кому-то с бесперспективным будующим и без поддержки netsys - вопрос с явным ответом.
да-а, в 2017 очень актуально про рейзерфс К%%:))
Как насчет поддержки длинных имен файлов у всех прогрессивных файловых систем?
ext2/ext3/ext4 - 255 байт
zfs - 255 байт
btrfs - 255 байт
ntfs - 255 символов
reiserfs - 4,032 байт /255 символов
Reiser4 - 3,976 байт
Имеем файловую структуру в NTFS, где длинна многих файлов/папок упирается в максимальное значение для NTFS - 255 символов в кириллице. Есть желание переместить все это на Linux - какую из современных файловых систем выбрать для переноса без проблем? С учетом того, что кириллица в utf-8 кодируется как один символ в 2 байта, то максимальный путь для всех файлосистем, у кого ограничение в 255 байт, в кириллице будет вообще почти 128 символов (всякие слэши и пробелы = 1 байт). Так в какую современную файловую систему можно перелить дерево NTFS на пределе максимальной длинны файла кроме райзер и райзер4?
Вы похоже не пробовали ее в деле, ReiserFS по прежнему быстрее всех при работе с мелкими файлами если у вас не ssd, вы заметите огромную разницу, да под home ее делать бессмысленно, но под корень и var точно быстрее рейзера никто не будет
В Knoppix 8.2 используется ReiserFS для раздела "usb persistent", для того чтобы сэкономить место под пользовательские файлы и изменения в системе, ну и чтобы чуть быстрее шевелилась система. Собственно благодаря Knoppix я про нее и узнал относительно недавно. Так что до сих пор актуальная ФС. Вообще получается самая подходящая ФС для линуксовых флешек раз она в ядро включена.