Как изменить файловую систему линукс

Во время выполнения различных задач по администрированию системы может понадобится работать с файловой системой Linux, форматировать разделы, изменять их

Во время выполнения различных задач по администрированию системы может понадобится работать с файловой системой Linux, форматировать разделы, изменять их размер конвертировать файловые системы, выполнить дефрагментацию в Linux или восстановление файловых систем.

Многие из этих действий выполняются в графическом интерфейсе, многие и вовсе автоматически. Но может возникнуть ситуация, в которой придется делать все через терминал. Также при администрировании удаленных серверов работать с ними приходится только через ssh, а это означает недоступность графического интерфейса.

В этой статье мы рассмотрим как выполняется работа с файловой системой Linux в терминале. За основу возьмем семейство файловых систем ext2/3/4, так как они самые распространенные среди большого многообразия дистрибутивов Linux.

Основные команды

Для управления файловой системой ext в Linux используется целый набор команд из пакета e2progs. Сюда входят как команды для управления флагами файлов, создания и изменения файловых систем, так и утилиты для отладки файловой системы.

Рассмотрим основные утилиты, которые будем использовать:

  • badblocks — если у вас старый жесткий диск и на нем накопилось много битых блоков, вы можете с помощью этой утилиты пометить их все на уровне файловой системы, чтобы больше не использовать.
  • e2label — позволяет изменить метку раздела с файловой системой ext.
  • fsck — проверка файловой системы linux и исправление найденных ошибок
  • mkfs — позволяет создать файловую систему Linux.
  • resize2fs — изменить размер раздела с файловой системой
  • tune2fs — позволяет изменить файловую систему Linux, настроить ее параметры.

А теперь будет рассмотрена работа с файловой системой linux на примерах.

Перед тем как переходить к работе с реальным жестким диском важно попрактиковаться. Если сменить метку или проверить на битые сектора можно и рабочий диск, то создавать новую файловую систему, изменять ее размер, рискуя потерять данные на реальном диске не рекомендуется. Можно отделить небольшой раздел диска для экспериментов с помощью Gparted и выполнять все действия в нем. Допустим, у нас этот раздел будет называться /dev/sda6.

Создание файловой системы

Создать файловую систему linux, семейства ext, на устройстве можно с помощью команды mkfs. Ее синтаксис выглядит следующим образом:

sudo mkfs -t тип устройство

Доступны дополнительные параметры:

  • — проверить устройство на наличие битых секторов
  • -b — размер блока файловой системы
  • -j — использовать журналирование для ext3
  • -L — задать метку раздела
  • -v — показать подробную информацию о процессе работы
  • -V — версия программы

Создаем файловую систему на нашем устройстве. Будем создавать ext3:

 sudo mkfs -t ext4 -L root /dev/sda6

Creating filesystem with 7847168 4k blocks and 1962240 inodes
Filesystem UUID: 3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Изменение метки файловой системы

Утилита e2label позволяет изменить или посмотреть метку раздела диска. Принимает всего два параметра — устройство и новую метку если нужно.

Смотрим метку:

sudo e2label /dev/sda6

root

Устанавливаем новую:

sudo e2label /dev/sda6 root1

Настройка файловой системы linux

Различные параметры файловой системы, такие как размер блока данных, иноды или зарезервированное место под данные пользователя root можно настроить. Для этого существует утилита tune2fs.

Синтаксис команды очень прост:

$ tune2fs опции устройство

Поддерживаются следующие опции:

  • -j — создать файл журнала. Позволяет превратить файловую систему ext2 в ext3.
  • -J — настроить параметры журнала
  • -l — получить содержимое суперблока
  • -L — изменить метку раздела
  • -m — изменить процент дискового пространства, зарезервированного для суперпользователя
  • -M — изменить последнюю папку монтирования
  • -U — задать UUID файловой системы
  • -C — изменить значение счетчика монтирования
  • -T — изменить последнюю дату проверки файловой системы
  • — изменить периодичность проверок файловой системы с помощью fsck
  • -O — изменить опции файловой системы.

Изменить размер зарезервированного места для суперпользователя до пяти процентов:

sudo tune2fs -m 5 /dev/sda6

Setting reserved blocks percentage to 5% (392358 blocks)

Посмотреть информацию из суперблока, эта команда показывает всю доступную информацию параметрах файловой системы:

Filesystem volume name:   root
Last mounted on:          /
Filesystem UUID:          3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg spar
se_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux

Изменить счетчик количества монитрований:

tune2fs -C 0 /dev/sda6

Setting current mount count to 0

Думаю тут смысл понятен, нужно только немного со всем этим поэкспериментировать.

С помощью опции -O мы вообще можем превратить нашу ext3 в ext4 следующей командой:

sudo tune2fs -O extents,uninit_bg,dir_index

После этого действия нужно выполнить проверку файловой системы на ошибки в fsck. Подробнее об этом поговорим ниже.

sudo fsck -np /dev/sda6

Таким образом вы можете изменить файловую систему linux, и настроить по своему усмотрению любые ее параметры.

Изменение размера файловой системы Linux

Раньше такая функция поддерживалась в утилите parted, но потом ее убрали и для этого действия приходится использовать утилиту из набора e2fsprogs — resize2fs.

Запустить утилиту очень просто. Ей нужно передать всего два параметра:

$ resize2fs [опции] устройство размер

Доступны также опции:

  • -M уменьшить файловую систему до минимального размера
  • -f — принудительное изменение, не смотря на потерю данных
  • -F — очистить буфер файловой системы

Размер передается, как и во многих других утилитах, целым числом с указанием единиц измерения, например, 100М или 1G.

Для примера уменьшим размер нашего раздела до 400 Мегабайт:

sudo resize2fs /dev/sda6 400M

Resizing the filesystem on /dev/sda7 to 102400 (4k) blocks.
The filesystem on /dev/sda7 is now 102400 blocks long

Проверка файловой системы Linux

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

Синтаксис fsck:

$ fsck [опции] устройство

Опции программы:

  • -p — автоматическое восстановление
  • -n — только проверка, без восстановления
  • -y — ответить да на все запросы программы
  • — проверить на битые сектора (аналог badblocks
  • -f — принудительная проверка, даже если раздел помечен как чистый
  • -j — внешний журнал файловой системы

Проверка файловой системы Linux выполняется такой командой, проверим диск /dev/sda6, заметьте, что диск должен быть не примонтирован:

sudo fsck -a /dev/sda6

root: clean, 11/32704 files, 37901/102400 blocks

 Дефрагментация файловой системы

Хотя и фрагментация нехарактерное явление для файловых систем семейства ext, при очень интенсивном использовании может накапливаться фрагментированость, что будет замедлять работу файловой системы. Для дефрагментации можно использовать стандартную утилиту e4defrag. Просто выполните:

e4defrag /dev/sda6

Чтобы проверить нужна ли дефрагментация в Linux выполните эту же команду с опцией -c:

Total/best extents                             26247/24953
Average size per extent                        1432 KB
Fragmentation score                            0
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This device (/dev/sda6) does not need defragmentation.
Done.

В поле Fragmentation score отображен процент фрагментации, как видите, у меня 0, нормой считается до 30, 31-55 небольшие проблемы, и больше 56 — нужна дефрагментация.

Выводы

В одной из предыдущих статей мы рассмотрели как выполняется разметка диска с помощью parted. Из этой статьи вы узнали все что нужно о работе с файловой системой. Теперь у вас не возникнет проблем если у вас вдруг не будет доступа к графическим утилитам и нужно будет исправлять ошибки или настраивать файловую систему. Если остались вопросы, спрашивайте в комментариях!

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Буквы в mkfs значке означают “make file system” (создать файловую систему). Команда обычно используется для управления устройствами хранения в Linux. Вы можете рассматривать mkfs как инструмент командной строки для форматирования диска в определенной файловой системе.

mkfs -t [fs type] [target device]

Вы также можете использовать команду mkfs следующим образом:

mkfs.[fs type] [target device]

В этой статье мы в общих чертах расскажем, что такое файловая система. А также приведем примеры эффективного использования команды mkfs.

Поскольку команда mkfs работает с дисками и разделами, вам необходимо быть пользователем root или sudo с правами доступа для запуска команд администратора.

MKFS это мощный инструмент. Важно понимать потенциальные последствия изменения файловой системы. Выбор неправильного узла устройства удалит все данные на этом устройстве. Используйте эту команду на свой страх и риск. Вы были предупреждены

Что такое файловая система

Файловая система (fs) относится к структуре и логике, которые управляют данными на устройстве. Файловая система контролирует, как данные хранятся и извлекаются.

Существует много типов файловых систем, каждая из которых имеет свои преимущества и недостатки. Вот наиболее распространенный тип файловых систем:

  • FAT*
  • NTFS
  • ext*
  • APFS
  • HFS*

Возможно, вы уже сталкивались с одним или несколькими из этих типов файловых систем. Вы можете даже связать типы с их соответствующими операционными системами.

Вообще говоря, FAT/NTFS предназначены для Windows, Ext используется с системами Linux, а APFS/HFS – файловые системы macOS. Каждый из них по-разному обращается к логике файловой структуры, что может привести к проблемам.

Вот почему важно подумать об этом перед объявлением типа файловой системы или «форматированием» вашего устройства. Каждый вариант использования индивидуален, и вам решать, какая файловая система лучше всего подходит для ваших нужд.

Примеры команд mkfs

Позвольте нам показать вам наиболее распространенное использование команды mkfs.

Пожалуйста, не пытайтесь использовать вслепую ни одну из этих команд в вашей реальной системе. Они отформатирует целевое устройство/раздел диска, удалив все данные.

mkfs без опций создает файловую систему ext2

Если вы не укажете тип файловой системы для целевого устройства, он будет использовать файловую систему ext2 по умолчанию.

sudo mkfs /dev/sdb1

Укажите тип файла с помощью mkfs

Использование ext2 не очень удобно или целесообразно. В наши дни большинство систем Linux рекомендуют использовать ext4. Вы можете указать файловую систему следующим образом:

sudo mkfs -t ext4 /dev/sdb1

Вы также можете использовать это так:

sudo mkfs.ext4 /dev/sdb1

Проверьте наличие плохих блоков на устройстве

Вы также можете проверить наличие плохих блоков на устройстве, но имейте в виду, что проверка часто занимает много времени.

sudo mkfs -c /dev/sdb1

Бонусный совет: проверьте тип файловой системы устройства

Вы можете проверить тип файловой системы устройства, которое вы только что отформатировали, используя команду mkfs. Вы можете использовать команду file для этой цели.

sudo file -sL /device

Вот пример, который показывает, какой вывод он может показать:

linux@andreyex:~$ sudo file -s /dev/nvme0n1p2
/dev/nvme0n1p2: Linux rev 1.0 ext4 filesystem data, UUID=34daa4b7-a2c4-4983-b5cc-df9baa6a6543 (extents) (64bit) (large files) (huge files)

Реальный пример использования: использование команды mkfs для создания файловой системы на USB-устройстве.

Теперь, когда у вас есть некоторая справочная информация, вы можете начать использовать mkfs.

Самая практическая демонстрация, которую мы можем придумать, – это форматирование USB-накопителя. Эти же принципы будут применяться к любому типу хранилища по вашему выбору.

Найди свое устройство

Сначала вам нужно будет найти свое устройство. Один метод, который вы можете использовать, это sudo fdisk -l. Это перечислит все дисковые узлы, которые в настоящее время смонтированы.

destroyer@linux-andreyex:~$ sudo fdisk -l
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3c62c49c

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1  *        4096  1023998  1019903  498M 83 Linux
/dev/sda2        1024000 44036094 43012095 20.5G 83 Linux
/dev/sda3       44036096 52424702  8388607    4G 82 Linux swap / Solaris

Disk /dev/sdb: 28.93 GiB, 31040995328 bytes, 60626944 sectors
Disk model: Patriot Memory  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 91A34D6F-E67B-E54D-B19C-5CC828DAAB9A

Device     Start      End  Sectors  Size Type
/dev/sdb1   2048 60626910 60624863 28.9G Linux filesystem

Ваш вывод, очевидно, будет различным. Пожалуйста, будьте очень осторожны при определении желаемого диска . Если вы не уверены, извлеките диск и повторите команду fdisk -l. Если у вас есть правильное устройство, оно не будет отображаться во время отключения.

Проверьте раздел

Устройство, которое мы используем, является USB-накопителем Patriot Memory, и оно находится по адресу /dev/sdb. В дополнение к определению правильного диска, вам нужно будет убедиться, что вы меняете fs нужного раздела.

Мы использовали инструменты fdisk, чтобы удалить существующие данные и написать новую таблицу разделов. Пока мы делали это, мы создали новый раздел для записи. Этот раздел будет нашей целью /dev/sdb1.

Отсоединение

Прежде чем пытаться изменить файловую систему, вам нужно размонтировать ее с помощью команды umount.

destroyer@linux-andreyex:~$ sudo umount /dev/sdb1

Создать файловую систему

Теперь, когда вы проверили свою цель и размонтировали диск, вы можете приступить к созданию файловой системы.

Мы добавили опцию -v verbose, чтобы отобразить больше информации при запуске.

destroyer@linux-andreyex:~$ sudo mkfs.ext4 /dev/sdb1 -v
mke2fs 1.45.5 (07-Jan-2020)
fs_types for mke2fs.conf resolution: 'ext4'
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1896832 inodes, 7578107 blocks
378905 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2155872256
232 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Filesystem UUID: 73882769-7599-4c79-a00b-ef317ccd921d
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 

Этот процесс может занять некоторое время, но должен завершиться менее чем за 20 минут, если цель не превышает 2 ТБ.

У нас было несколько проблем с программой, висящей на последнем пункте. К сожалению, нет индикатора прогресса, и мы не видели ошибок.

Проверьте вновь созданную файловую систему

Сначала проверьте файловую систему устройства, которое вы только что использовали. Это тот, который вы хотели?

sudo file -sL /dev/sdb1

Важно убедиться, что устройство распознается в системах, с которыми оно будет использоваться. Мы создали папку с именем test и внутри нее файл с именем test.txt.

Чтобы сэкономить время, вы можете скопировать и вставить мои команды здесь.

mkdir test && cd test
touch test.txt
echo "THIS IS ONLY A TEST" > test.txt
cat test.txt

Если все работает, вы сможете смонтировать диск в нужные вам системы и получить доступ к файлам. Если вы не можете получить доступ к файлам в вашей системе, возможно, существует проблема совместимости.

Вывод

Мы надеемся, что вы найдете это краткое руководство по команде mkfs полезным. Если вам нравится эта статья, пожалуйста, поделитесь ее в социальных сетях.

Если у вас есть какие-либо комментарии или вопросы, пожалуйста, оставьте их ниже. Если у вас есть предложения по темам, которые вы бы хотели охватить, не стесняйтесь также оставлять их.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

The mkfs command stands for “make file system” is utilized to make a file system (which is, a system for organizing a hierarchy of directories, subdirectories, and files) on a formatted storage device usually, a partition on a hard disk drive (HDD) or it can also be a USB drive, etc. A partition is logically an autonomous part of an HDD. An organized segment is one to which a low-level arrangement or format, additionally called a physical format(organization), has been applied. It comprises separating the disk’s tracks into a predetermined number of divisions and filling the information zone of every segment with dummy bytes. 

These outcomes in the demolition of any current information on the disk. Formatting(organizing) of new HDD and floppy plates is done at the manufacturing plant. It is seldom important to do a low-level format on an HDD. The creation of a file system is also known as high-level formatting or logical formatting. It includes making a table of contents for the partition or disk, but in this case, the data already present on the disk or segment is not destroyed. Basically, “mkfs” is just a front-end for the various specific file system creation programs that are available in Linux, such as mke2fs, mkfs.ext3 and mkfs.vfat, etc. When the “mkfs” command is compiled, then a precise list of standard directories is created, and therefore the specified program is searched for from the same list.

Syntax for mkfs command:

mkfs [ -V ] [ -t fstype ] [ fs-options ] filesys [ blocks ]
  • The items in the square brackets are discretionary, but the main obligatory argument is “filesys”. filesys is the name of a device document (i.e., a record that the system uses to execute admittance to a physical device), for example, /dev/hda3, the third segment on the primary HDD, or/dev/fd0, the principal floppy disk. It can likewise be the mount point (i.e., where it is joined to the system) for the new file system.
  • The most commonly used option is “-t”, which is utilized for specifying the type of file system to be created. If this option is not used, the default filesystem created will be ext2 (second extended file system) from the other types of file systems that can be created like ext3, minix, msdos, vfat and xfs.
  • The -V option is used to produce verbose output, and also includes all file system-specific commands that are executed. By specifying this option more than once, the execution of any file system-specific commands can be prevented.
  • The “-c” option, will check the storage device for bad blocks before creating the file system, and the “-l” option, will read the bad blocks list from a file whose name follows it.
  • “fs-options” stand for file system-specific options that are to be passed to the real file system creation program (i.e., the program for which mkfs is serving just as a front end).
     

Journaling

It is a significant idea in file systems. The file system records the awaiting file keeps in touch with a diary. As each file is composed of, the diary is refreshed, and the unresolved setup accounts are refreshed. This permits the file system to fix broken, halfway composed files that have happened because of a disastrous occasion, for example, a power cut. A portion of the more seasoned file systems doesn’t uphold journaling. Those that don’t, keep in touch with the disk, less regularly in light of the fact that they don’t have to refresh the diary. They might give a faster performance, yet they are more inclined to harm because of interrupted file writes.

  • In the modern era, the way of utilizing mkfs is to type “mkfs.” and then the name of the file system you wish to create.
  • Now, in order to see all the file systems offered by the “mkfs” command, hit the Tab key twice.
  • The list of all available file systems available in the Linux distribution being used will be displayed in the terminal window. The screenshot is from Ubuntu 18.04 LTS. Other distributions may have more or fewer options:

mkfs journaling

To make a File System on a USB:

1. Finding the required device on the OS through the terminal. Type in the following command, and it will show all the disk nodes that are currently mounted. Be always sure in choosing the right disk or otherwise, you can remove the storage device and then again plug it in if the above command is not showing it in the list, thereafter again run the above command to list all the nodes. Here, our required disk is “/dev/sdb” which is of 3.7 GiB.

sudo fdisk -l

USB filesystem makemkfs make file system

2. Un-mounting the USB drive’s partition

Un-mounting the storage drive is necessary before performing the format. Run the following command, but remember to replace “sdb1″ with your USB drive’s partition label, and then press Enter. 

sudo umount /dev/sdb1

unmount

3. Erasing all the data on the drive (discretionary)

You can erase everything on the drive by entering the following command. But, remember to supplant “sdb” with your USB drive’s name.

sudo dd if=/dev/zero of=/dev/sdb bs=4k status=progress && sync

erase all data

4. Creating a new partition table

Type in the following command, by replacing “sdb” with your USB drive’s label, and then press Enter.

sudo fdisk /dev/sdb

Creating a new partition table

Enter “o” for creating an empty partition table.

Creating a new partition table

Enter the option “n” for creating a new partition.

Creating a new partition table

Enter “w” to write the table and exit.

Creating a new partition table

5. Execute the following command for viewing the partition.

lsblk

6. Formatting the new volume created

Enter the following command and press Enter for formatting the drive as ext4. Remember to, replace “sdb1” with your partition’s label: 

sudo mkfs.vfat /dev/sdb1

7. Verifying the newly created filesystem

Run the following command in the terminal:

sudo file -sL /dev/sdb1

verifying created file system

8. Lastly, execute the following command for ejecting the drive when finished.

sudo eject /dev/sdb

eject device file system

Now, We have successfully formatted the USB storage device and have also created a file system with a partition.

The mkfs command stands for “make file system” is utilized to make a file system (which is, a system for organizing a hierarchy of directories, subdirectories, and files) on a formatted storage device usually, a partition on a hard disk drive (HDD) or it can also be a USB drive, etc. A partition is logically an autonomous part of an HDD. An organized segment is one to which a low-level arrangement or format, additionally called a physical format(organization), has been applied. It comprises separating the disk’s tracks into a predetermined number of divisions and filling the information zone of every segment with dummy bytes. 

These outcomes in the demolition of any current information on the disk. Formatting(organizing) of new HDD and floppy plates is done at the manufacturing plant. It is seldom important to do a low-level format on an HDD. The creation of a file system is also known as high-level formatting or logical formatting. It includes making a table of contents for the partition or disk, but in this case, the data already present on the disk or segment is not destroyed. Basically, “mkfs” is just a front-end for the various specific file system creation programs that are available in Linux, such as mke2fs, mkfs.ext3 and mkfs.vfat, etc. When the “mkfs” command is compiled, then a precise list of standard directories is created, and therefore the specified program is searched for from the same list.

Syntax for mkfs command:

mkfs [ -V ] [ -t fstype ] [ fs-options ] filesys [ blocks ]
  • The items in the square brackets are discretionary, but the main obligatory argument is “filesys”. filesys is the name of a device document (i.e., a record that the system uses to execute admittance to a physical device), for example, /dev/hda3, the third segment on the primary HDD, or/dev/fd0, the principal floppy disk. It can likewise be the mount point (i.e., where it is joined to the system) for the new file system.
  • The most commonly used option is “-t”, which is utilized for specifying the type of file system to be created. If this option is not used, the default filesystem created will be ext2 (second extended file system) from the other types of file systems that can be created like ext3, minix, msdos, vfat and xfs.
  • The -V option is used to produce verbose output, and also includes all file system-specific commands that are executed. By specifying this option more than once, the execution of any file system-specific commands can be prevented.
  • The “-c” option, will check the storage device for bad blocks before creating the file system, and the “-l” option, will read the bad blocks list from a file whose name follows it.
  • “fs-options” stand for file system-specific options that are to be passed to the real file system creation program (i.e., the program for which mkfs is serving just as a front end).
     

Journaling

It is a significant idea in file systems. The file system records the awaiting file keeps in touch with a diary. As each file is composed of, the diary is refreshed, and the unresolved setup accounts are refreshed. This permits the file system to fix broken, halfway composed files that have happened because of a disastrous occasion, for example, a power cut. A portion of the more seasoned file systems doesn’t uphold journaling. Those that don’t, keep in touch with the disk, less regularly in light of the fact that they don’t have to refresh the diary. They might give a faster performance, yet they are more inclined to harm because of interrupted file writes.

  • In the modern era, the way of utilizing mkfs is to type “mkfs.” and then the name of the file system you wish to create.
  • Now, in order to see all the file systems offered by the “mkfs” command, hit the Tab key twice.
  • The list of all available file systems available in the Linux distribution being used will be displayed in the terminal window. The screenshot is from Ubuntu 18.04 LTS. Other distributions may have more or fewer options:

mkfs journaling

To make a File System on a USB:

1. Finding the required device on the OS through the terminal. Type in the following command, and it will show all the disk nodes that are currently mounted. Be always sure in choosing the right disk or otherwise, you can remove the storage device and then again plug it in if the above command is not showing it in the list, thereafter again run the above command to list all the nodes. Here, our required disk is “/dev/sdb” which is of 3.7 GiB.

sudo fdisk -l

USB filesystem makemkfs make file system

2. Un-mounting the USB drive’s partition

Un-mounting the storage drive is necessary before performing the format. Run the following command, but remember to replace “sdb1″ with your USB drive’s partition label, and then press Enter. 

sudo umount /dev/sdb1

unmount

3. Erasing all the data on the drive (discretionary)

You can erase everything on the drive by entering the following command. But, remember to supplant “sdb” with your USB drive’s name.

sudo dd if=/dev/zero of=/dev/sdb bs=4k status=progress && sync

erase all data

4. Creating a new partition table

Type in the following command, by replacing “sdb” with your USB drive’s label, and then press Enter.

sudo fdisk /dev/sdb

Creating a new partition table

Enter “o” for creating an empty partition table.

Creating a new partition table

Enter the option “n” for creating a new partition.

Creating a new partition table

Enter “w” to write the table and exit.

Creating a new partition table

5. Execute the following command for viewing the partition.

lsblk

6. Formatting the new volume created

Enter the following command and press Enter for formatting the drive as ext4. Remember to, replace “sdb1” with your partition’s label: 

sudo mkfs.vfat /dev/sdb1

7. Verifying the newly created filesystem

Run the following command in the terminal:

sudo file -sL /dev/sdb1

verifying created file system

8. Lastly, execute the following command for ejecting the drive when finished.

sudo eject /dev/sdb

eject device file system

Now, We have successfully formatted the USB storage device and have also created a file system with a partition.

Файловая система управляет хранением данных на диске и предоставляет доступ к ним. Linux поддерживает множество файловых систем, некоторые из которых являются собственными, например семейство ext (Extended Filesystem), а остальные пришли из других операционных систем — FAT из MS-DOS, NTFS из Windows NT, HFS и HFS+ из Mac OS и т.д.

Стандартным инструментом создания файловой системы в Linux является  mkfs (make file system). Вариант исполнения этого инструмента зависит от файловой системы, с которой он должен работать.

Создание файловой системы ext2/ext3/ext4

Расширенная файловая система ext (Extended File System) была первой файловой системой для Linux. С годами ее заменили новые версии под названием ext2, ext3 и ext4, которые в настоящее время являются файловой системой по умолчанию для многих дистрибутивов Linux.

Утилиты  mkfs.ext2mkfs.ext3 и mkfs.ext4  используются для создания файловых систем ext2, ext3 и ext4. Фактически, все эти утилиты существуют только как символические ссылки на другую утилиту под названием mke2fs.  mke2fs изменяет свои параметры по умолчанию в соответствии с именем, по которому она вызывается. Таким образом, все они имеют одинаковое поведение и параметры командной строки.

Самая простая команда выглядит так mkfs.ext2 TARGET, где TARGET — это имя раздела, в котором должна быть создана файловая система. Например, для создания файловой системы ext3 на блочном устройстве (разделе) /dev/sdb1  команда будет:

mkfs.ext3 /dev/sdb1

Вывести список блочных устройств (дисков и разделов) можно командой lsblk.
Как создать новый раздел на диске можно прочесть в этой статье.

Вместо использования команды с именем конкретной файловой системы, можно вызвать утилиту  mke2fs с параметром -t, за которым следует имя файловой системы. В примере ниже используются две эквивалентные команды, создающие одну файловую систему  ext4 на /dev/sdb1.

mkfs.ext4 /dev/sdb1
mke2fs -t ext4 /dev/sdb1

Параметры командной строки

mke2fs поддерживает широкий спектр параметров и опций командной строки. Вот некоторые наиболее важных из них. Все они также относятся к mkfs.ext2mkfs.ext3 и mkfs.ext4:

-b size
Задает размер блоков данных в устройстве, который может составлять 1024, 2048 или 4096 байт на блок.


Проверяет целевое устройство на наличие поврежденных блоков перед созданием файловой системы. Вы можете выполнить тщательную, но гораздо более медленную проверку, передав этот параметр дважды, например так mkfs.ext4 -c -c TARGET.

-d DIRECTORY
Копирует содержимое указанного каталога в корень новой файловой системы. Полезно, если вам нужно “предварительно заполнить” диск предопределенным набором файлов.

-F
Осторожно! Этот параметр заставит mke2fs создать файловую систему, даже если другие переданные параметры опасны или вообще не имеют смысла. Если параметр передать дважды  -F -F, то это запустит процесс создания файловой системы на устройстве, которое смонтировано или используется, что может привести к очень печальным последствиям.

-L VOLUME_LABEL
Установит метку тома VOLUME_LABEL. Эта метка должна содержать не более 16 символов.

-n
Это действительно полезная опция, которая имитирует создание файловой системы и отображает, что было бы сделано, если бы выполнялось без этой опции. Думайте об этом как о “пробном” режиме. Бывает полезно проверить, прежде чем вносить какие-либо изменения на диск.

-q
Тихий режим. mke2fs будет работать как обычно, но не будет выводить никаких данных на терминал. Полезно при запуске mke2fs из скрипта.

-U ID
Этот параметр установит UUID (универсальный уникальный идентификатор) раздела в значение, указанное в ID. UUID — это 128-битные числа в шестнадцатеричной системе счисления, которые служат для уникальной идентификации раздела в операционной системе. Это число задается как 32-значная строка в формате 8-4-4-4-12, что означает 8 цифр, дефис, 4 цифры, дефис, 4 цифры, дефис, 4 цифры, дефис, 12 цифр, например D249E380-7719-45A1-813C-35186883987E
Вместо ID вы также можете указать такие параметры, как 
clear — очистка UUID файловой системы,
random — использование случайно сгенерированного UUID,
time — создание UUID на основе времени.

-V
Подробный режим, печатает гораздо больше информации во время работы, чем обычно. Полезно для целей отладки.

Создание файловой системы FAT или VFAT

Файловая система FAT возникла из MS-DOS и за прошедшие годы претерпела множество изменений, кульминацией которых стал формат FAT32, выпущенный в 1996 году с Windows 95 OSR2.

VFAT — это расширение формата FAT16 с поддержкой длинных (до 255 символов) имен файлов. Обе файловые системы обрабатываются одной и той же утилитой mkfs.fat, которая так же является алиасом утилиты mke2fs.

Файловая система FAT имеет значительные недостатки, которые ограничивают ее использование на больших дисках. Например, FAT16 поддерживает тома не более 4 ГБ и максимальный размер файла 2 ГБ. FAT32 увеличивает размер тома до 2 ПБ, а максимальный размер файла — до 4 ГБ. Из-за этого файловые системы FAT сегодня чаще используются на небольших флэш-накопителях или картах памяти (размером до 2 ГБ) или на устаревших устройствах и операционных системах, которые не поддерживают более продвинутые файловые системы.

Самая простая команда для создания файловой системы FAT — это mkfs.fat TARGET, где TARGET это раздел, в котором вы хотите создать файловую систему. Например: 

mkfs.fat /dev/sdc1

Как и другие утилиты, mkfs.fat поддерживает ряд параметров командной строки. Ниже приведены наиболее важные из них. Полный список и описание каждой опции можно прочитать в руководстве к утилите, используя команду man mkfs.fat.

-c
Проверяет целевое устройство на наличие поврежденных блоков перед созданием файловой системы.

-C FILENAME BLOCK_COUNT
Создаст файл, указанный в FILENAME, а затем создаст внутри него файловую систему FAT, фактически создавая пустой “образ диска”, который позже можно записать на устройство с помощью утилиты, такой как dd или смонтировать как петлевое устройство loopback. При использовании этой опции количество блоков в файловой системе (BLOCK_COUNT) должно быть указано после имени устройства.

-F SIZE
Определяет размер FAT (таблицы распределения файлов) — 12, 16 или 32: то есть FAT12, FAT16 или FAT32. Если не указано, то mkfs.fat будет выбран соответствующий параметр в зависимости от размера файловой системы.

-n NAME
Задает метку тома (имя) для файловой системы. Она может быть длиной до 11 символов, а по умолчанию — без имени.

-v
Подробный режим. Выводит гораздо больше информации чем обычно, что полезно для отладки.

mkfs.fat не способен создавать “загрузочную” файловую систему. В руководстве утилиты сказано, что “это не так просто, как вы думаете” и не будет реализовано.

Создание файловой системы exFAT

exFAT — это файловая система, созданная Корпорацией Майкрософт в 2006 году, которая устраняет одно из наиболее значимых ограничений FAT32: размер файла и диска. В exFAT максимальный размер файла составляет 16 эксабайт (против 4 ГБ в FAT32), а максимальный размер диска составляет 128 петабайт.

Поскольку эта файловая система поддерживается всеми тремя основными операционными системами (Windows, Linux и mac OS), то будет хорошим выбором там, где требуется совместимость: например, на флэш-накопителях большой емкости, картах памяти и внешних дисках. Ассоциация SD рекомендует exFAT как файловую систему по умолчанию для карт памяти формата SDXC объемом более 32 ГБ.

Создание файловых систем exFAT выполняется утилитой mkfs.exfat, которая является ссылкой на mkexfatfs. Основное использование команды выглядит так: 
mkfs.exfat TARGET, где TARGET это раздел, в котором вы хотите создать файловую систему. Например: 

mkfs.exfat /dev/sdb2

В отличие от других утилит, рассмотренных в этом уроке, mkfs.exfat имеет очень мало параметров командной строки.

-i VOL_ID
Устанавливает идентификатор тома в значение, указанное в VOL_ID. Это 32-разрядное шестнадцатеричное число. Если не определено, то устанавливается идентификатор, основанный на текущем времени.

-n NAME
Задает метку или название тома. Может содержать до 15 символов, по умолчанию имя не используется .

-p SECTOR
Задает первый сектор первого раздела на диске. Это необязательное значение и по умолчанию оно равно нулю.

-s SECTORS
Определяет какое количество физических секторов будет распределено на каждый кластер. Это должна быть степень двойки, например 1, 2, 4, 8 и так далее.

Создание файловой системы XFS

XFS — это высокопроизводительная файловая система, первоначально разработанная Silicon Graphics в 1993 году для своей операционной системы IRIX. Благодаря своим характеристикам производительности и надежности она обычно используется для серверов и других сред, требующих высокой (или гарантированной) пропускной способности файловой системы.

Инструменты для управления файловыми системами XFS являются частью пакета xfsprogs. Возможно потребуется установить этот пакет вручную, поскольку он не включен по умолчанию в некоторые дистрибутивы Linux. А в других, например Red Hat Enterprise Linux, XFS используют в качестве файловой системы по умолчанию.

Файловые системы XFS разделены как минимум на 2 части: раздел журнала, в котором ведется журнал всех операций файловой системы (обычно называемый Журналом), и раздел данных. Раздел журнала может быть расположен внутри раздела данных (поведение по умолчанию) или вообще на отдельном диске для повышения производительности и надежности.

Самая основная команда для создания файловой системы XFS — это mkfs.xfs TARGET, где TARGET это раздел, в котором вы хотите создать файловую систему. Например: 

mkfs.xfs /dev/sda1

mkfs.xfs поддерживает ряд параметров командной строки. Вот некоторые из наиболее распространенных:

-b size=VALUE
Устанавливает размер блока в файловой системе в байтах, равный размеру указанному в VALUE. Значение по умолчанию — 4096 байт (4 КБ), минимальное — 512, а максимальное — 65536 (64 КБ).

-m crc=VALUE
Параметры, начинающиеся с -m, являются параметрами метаданных. Этот параметр задействует (если VALUE  1) или отключит (если VALUEесть0) использование CRC32c для проверки целостности метаданных на диске. Это позволяет лучше обнаруживать ошибки и восстанавливать после сбоев, связанных с проблемами оборудования. Поэтому эта проверка включена по умолчанию. Обычно нет причин ее отключать, так как влияние этой проверки на производительность минимально.

-m uuid=VALUE
Устанавливает UUID раздела в значение, указанное в VALUE. Помните, что UUID — это 32-символьные (128 бит) числа с шестнадцатеричным основанием, заданные группами из 8, 4, 4, 4 и 12 цифр, разделенных тире. Например 1E83E3A3-3AE9-4AAC-BF7E-29DFFECD36C0.

-f
Принудительно создает файловую систему на целевом устройстве, даже если на нем обнаружена файловая система.

-l logdev=DEVICE
Раздел журнала файловой системы будет размещен на указанном устройстве, а не внутри раздела данных.

-l size=VALUE
Размер раздела журнала будет равен размеру, указанному в VALUE. Размер может быть указан в байтах с использованием суффиксов  m или g. Например -l size=10m, раздел журнала будет ограничен 10 мегабайтами.

-q
Тихий режим. В этом режиме mkfs.xfs не будет выводить информации о параметрах создаваемой файловой системы.

-L LABEL
Задает метку файловой системы, длина которой может составлять не более 12 символов.

-N
Аналогично -n параметру в mke2fs, заставит mkfs.xfs печатать все параметры создания файловой системы, фактически не создавая ее (имитирует создание файловой системы).

Создание файловой системы Btrfs

Btrfs (официально файловая система B-Tree, произносится как “Butter FS”, “Better FS” или даже “Butterfuss”, на ваш выбор) — это файловая система, которая разрабатывается с 2007 года специально для Linux корпорацией Oracle и другими компаниями, включая Fujitsu, Red Hat, Intel и SUSE.

Существует множество функций, которые делают Btrfs привлекательными в современных системах, где распространены большие объемы памяти. Среди них поддержка нескольких устройств (включая чередование, зеркальное отображение и чередование + зеркальное отображение, как при настройке RAID), прозрачное сжатие, оптимизация SSD, инкрементное резервное копирование, моментальные снимки, онлайн-дефрагментация, проверки в автономном режиме, поддержка вложенных объемов (с квотами), дедупликация и многое другое.

Поскольку Btrfs это файловая система с копированием при записи, она очень устойчива к сбоям. И вдобавок ко всему, Btrfs проста в использовании и хорошо поддерживается многими дистрибутивами Linux. И некоторые из них, такие как SUSE, используют его в качестве файловой системы по умолчанию.

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

Для создания файловой системы Btrfs используется утилита mkfs.btrfs. Использование команды без каких-либо параметров создает файловую систему Btrfs на заданном устройстве, например:

mkfs.btrfs /dev/sdb1

Если  в вашей системе нет утилиты mkfs.btrfs, найдите btrfs-progs в менеджере пакетов вашего дистрибутива и установите ее.

Вы можете использовать -L чтобы задать метку (или имя) для вашей файловой системы. Метки Btrfs могут содержать до 256 символов. Если используются пробелы заключите имя в кавычки:

mkfs.btrfs /dev/sdb1 -L "New disk"

Обратите внимание на эту особенность Btrfs: вы можете передать в команду mkfs.btrfs несколько устройств. В случае передачи команде более одного устройства, будет создана одна файловая система на всех устройствах, что аналогично настройке RAID или LVM. Используйте параметр -m, чтобы указать как будут распределяться метаданные на дисковом массиве. Допустимыми параметрами являются raid0, raid1, raid5, raid6, raid10, single и dub.

Например, чтобы создать файловую систему, объединяющую два раздела /dev/sdb1 и /dev/sdc1 в один большой раздел, используйте:

mkfs.btrfs -d single -m single /dev/sdb /dev/sdc

Файловые системы, охватывающие несколько разделов, на первый взгляд могут показаться выгодными. Но это плохая идея с точки зрения безопасности данных, поскольку сбой на одном диске массива означает определенную потерю данных. Чем больше дисков вы используете, тем выше риск потери данных, так как у вас больше возможных точек отказа.

Управление вложенными томами

Вложенные тома подобны файловым системам внутри файловых систем. Представляйте их как каталог, который может быть смонтирован как отдельная файловая система. Вложенные тома упрощают организацию и администрирование системы, поскольку каждый из них может иметь отдельные квоты или правила снэпшота (моментального снимка диска).

Вложенные тома не являются разделами. Раздел занимает фиксированное пространство на диске. Это может привести к дальнейшим проблемам, например к тому, что на одном разделе заканчивается свободное место, когда на другом остается достаточно места. С вложенными томами иначе, поскольку они “разделяют” свободное пространство из своей корневой файловой системы и растут по мере необходимости.

Предположим, у вас есть файловая система Btrfs, смонтированная на диске /mnt/disk, и вы хотите создать внутри нее вложенный том для хранения ваших резервных копий. Давайте назовем этот том BKP:

btrfs subvolume create /mnt/disk/BKP

Далее выведем содержимое файловой системы /mnt/disk. Вы увидите, что появился новый каталог, названный в честь вложенного тома.

$ ls -lh /mnt/disk/
total 0
drwxr-xr-x 1 root   root     0 jul 13 17:35 BKP
drwxrwxr-x 1 carol carol 988 jul 13 17:30 Images

Да, к вложенным томам можно получить доступ так же как к директории.

Мы можем проверить, что вложенный объем активен, с помощью команды:

# btrfs subvolume show /mnt/disk/BKP/
	Name: 			BKP
	UUID: 			e90a1afe-69fa-da4f-9764-3384f66fa32e
	Parent UUID: 		-
	Received UUID: 		-
	Creation time: 		2019-07-13 17:35:40 -0300
	Subvolume ID: 		260
	Generation: 		23
	Gen at creation: 	22
	Parent ID: 		5
	Top level ID: 		5
	Flags: 			-
	Snapshot(s):

Вы можете смонтировать вложенный том в /mnt/BKP, передав команде mount параметры -t btrfs -o subvol=NAME.

mount -t btrfs -o subvol=BKP /dev/sdb1 /mnt/bkp

где параметр -t задает тип монтируемой файловой системы.

Работа со снэпшотами

Снэпшоты аналогичны вложенным объемам, но предварительно заполняются содержимым тома, из которого был сделан снимок.

При создании, моментальный снимок и исходный том имеют точно такое же содержимое. Но с этого момента времени они будут расходиться. Изменения, внесенные в исходный том (добавленные, переименованные или удаленные файлы), не будут отражены на моментальном снимке, и наоборот.

Имейте в виду, что снэпшот не дублирует файлы и изначально почти не занимает места на диске. Он просто дублирует дерево файловой системы, ссылаясь при этом на исходные данные.

Команда для создания моментального снимка такая же как и для создания вложенного объема, просто добавьте параметр snapshot после btrfs subvolume. Приведенная ниже команда создаст снимок файловой системы Btrfs, смонтированной в /mnt/disk/, в директорию mnt/disk/snap:

btrfs subvolume snapshot /mnt/disk /mnt/disk/snap

Теперь представьте, что у вас есть следующее содержимое в/mnt/disk:

$ ls -lh
total 2,8M
-rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png
-rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg
-rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg
-rw-rw-r-- 1 carol carol 467K jul 2 11:48 LG-G8S-ThinQ-Mirror-White.jpg
-rw-rw-r-- 1 carol carol 654K jul 2 11:39 LG-G8S-ThinQ-Range.jpg
-rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg
-rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg
drwx------ 1 carol carol 366 jul 13 17:56 snap
-rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg
-rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png

Обратите внимание на каталог snap, содержащий снэпшот. Теперь давайте удалим некоторые файлы и проверим содержимое каталога:

$ rm LG-G8S-ThinQ-*
$ ls -lh
total 1,7M
-rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png
-rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg
-rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg
-rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg
-rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg
drwx------ 1 carol carol 366 jul 13 17:56 snap
-rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg
-rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png

Но если проверить содержимое каталога со снэпшотом, то удаленные файлы будут все еще там и при необходимости их можно восстановить.

$ ls -lh snap/
total 2,8M
-rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png
-rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg
-rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg
-rw-rw-r-- 1 carol carol 467K jul 2 11:48 LG-G8S-ThinQ-Mirror-White.jpg
-rw-rw-r-- 1 carol carol 654K jul 2 11:39 LG-G8S-ThinQ-Range.jpg
-rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg
-rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg
-rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg
-rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png

Также возможно создавать моментальные снимки, доступные только для чтения. Они работают точно так же как доступные для записи моментальные снимки, но с той разницей, что содержимое моментального снимка не может быть изменено. Просто добавьте параметр -rпри создании снимка:

btrfs subvolume snapshot -r /mnt/disk /mnt/disk/snap

Несколько слов о сжатии в Btrfs

Btrfs поддерживает прозрачное сжатие файлов с тремя различными алгоритмами, доступными пользователю. Оно выполняется автоматически для каждого файла, если файловая система смонтирована с помощью этой опции -o compress. Алгоритм сжатия достаточно умен, чтобы обнаружить несжимаемые файлы и не будет пытаться сжать их, экономя таким образом системные ресурсы. Итак, в одном каталоге у вас могут быть сжатые и несжатые файлы вместе. Алгоритм сжатия по умолчанию — ZLIB, но доступны LZO (быстрее, но худшая степень сжатия) или ZSTD (быстрее чем ZLIB и сопоставимое сжатие) с несколькими уровнями сжатия.

Содержание

  • 1 Основные команды
  • 2 Работа с файловой системой в Linux
    • 2.1 Создание файловой системы
    • 2.2 Изменение метки файловой системы
    • 2.3 Настройка файловой системы linux
    • 2.4 Изменение размера файловой системы Linux
    • 2.5 Проверка файловой системы Linux
    • 2.6 Дефрагментация файловой системы
  • 3 Выводы
    • 3.1 Предостережения
    • 3.2 Расширение файловой системы на основе разделов

Во время выполнения различных задач по администрированию системы может понадобится работать с файловой системой Linux, форматировать разделы, изменять их размер конвертировать файловые системы, может понадобиться дефрагментация в Linux или восстановление файловых систем. Многие из этих действий выполняются в графическом интерфейсе, многие и вовсе автоматически. Но может возникнуть ситуация, в которой придется делать все через терминал. Также при администрировании удаленных серверов работать с ними приходится только через ssh, а это означает недоступность графического интерфейса.

В этой статье мы рассмотрим как выполняется работа с файловой системой Linux в терминале. За основу возьмем семейство файловых систем ext2/3/4, так как они самые распространенные среди большого многообразия дистрибутивов Linux.

Основные команды

Для управления файловой системой ext в Linux используется целый набор команд из пакета e2progs. Сюда входят как команды для управления флагами файлов, создания и изменения файловых систем, так и утилиты для отладки файловой системы.

Рассмотрим основные утилиты, которые будем использовать:

  • badblocks — если у вас старый жесткий диск и на нем накопилось много битых блоков, вы можете с помощью этой утилиты пометить их все на уровне файловой системы, чтобы больше не использовать.
  • e2label — позволяет изменить метку раздела с файловой системой ext.
  • fsck — проверка файловой системы linux и исправление найденных ошибок
  • mkfs — позволяет создать файловую систему Linux.
  • resize2fs — изменить размер раздела с файловой системой
  • tune2fs — позволяет изменить файловую систему Linux, настроить ее параметры.

А теперь будет рассмотрена работа с файловой системой linux на примерах.

Работа с файловой системой в Linux

Перед тем как переходить к работе с реальным жестким диском важно попрактиковаться. Если сменить метку или проверить на битые сектора можно и рабочий диск, то создавать новую файловую систему, изменять ее размер, рискуя потерять данные на реальном диске не рекомендуется. Можно отделить небольшой раздел диска для экспериментов с помощью Gparted и выполнять все действия в нем. Допустим, у нас этот раздел будет называться /dev/sda6.

Создание файловой системы

Создать файловую систему linux, семейства ext, на устройстве можно с помощью команды mkfs. Ее синтаксис выглядит следующим образом:

sudo mkfs -t тип устройство

Доступны дополнительные параметры:

  • — проверить устройство на наличие битых секторов
  • -b — размер блока файловой системы
  • -j — использовать журналирование для ext3
  • -L — задать метку раздела
  • -v — показать подробную информацию о процессе работы
  • -V — версия программы

Создаем файловую систему на нашем устройстве. Будем создавать ext3:

sudo mkfs -t ext4 -L root /dev/sda6

Creating filesystem with 7847168 4k blocks and 1962240 inodes

Filesystem UUID: 3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Изменение метки файловой системы

Утилита e2label позволяет изменить или посмотреть метку раздела диска. Принимает всего два параметра — устройство и новую метку если нужно.

sudo e2label /dev/sda6

sudo e2label /dev/sda6 root1

Настройка файловой системы linux

Различные параметры файловой системы, такие как размер блока данных, иноды или зарезервированное место под данные пользователя root можно настроить. Для этого существует утилита tune2fs.

Синтаксис команды очень прост:

$ tune2fs опции устройство

Поддерживаются следующие опции:

  • -j — создать файл журнала. Позволяет превратить файловую систему ext2 в ext3.
  • -J — настроить параметры журнала
  • -l — получить содержимое суперблока
  • -L — изменить метку раздела
  • -m — изменить процент дискового пространства, зарезервированного для суперпользователя
  • -M — изменить последнюю папку монтирования
  • -U — задать UUID файловой системы
  • -C — изменить значение счетчика монтирования
  • -T — изменить последнюю дату проверки файловой системы
  • — изменить периодичность проверок файловой системы с помощью fsck
  • -O — изменить опции файловой системы.

Изменить размер зарезервированного места для суперпользователя до пяти процентов:

sudo tune2fs -m 5 /dev/sda6

Setting reserved blocks percentage to 5% (392358 blocks)

Посмотреть информацию из суперблока, эта команда показывает всю доступную информацию параметрах файловой системы:

Filesystem volume name: root
Last mounted on: /
Filesystem UUID: 3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg spar
se_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux

Изменить счетчик количества монитрований:

tune2fs -C 0 /dev/sda6

Setting current mount count to 0

Думаю тут смысл понятен, нужно только немного со всем этим поэкспериментировать.

С помощью опции -O мы вообще можем превратить нашу ext3 в ext4 следующей командой:

sudo tune2fs -O extents,uninit_bg,dir_index

После этого действия нужно выполнить проверку файловой системы на ошибки в fsck. Подробнее об этом поговорим ниже.

sudo fsck -np /dev/sda6

Таким образом вы можете изменить файловую систему linux, и настроить по своему усмотрению любые ее параметры.

Изменение размера файловой системы Linux

Раньше такая функция поддерживалась в утилите parted, но потом ее убрали и для этого действия приходится использовать утилиту из набора e2fsprogs — resize2fs.

Запустить утилиту очень просто. Ей нужно передать всего два параметра:

$ resize2fs [опции] устройство размер

Доступны также опции:

  • -M уменьшить файловую систему до минимального размера
  • -f — принудительное изменение, не смотря на потерю данных
  • -F — очистить буфер файловой системы

Размер передается, как и во многих других утилитах, целым числом с указанием единиц измерения, например, 100М или 1G.

Для примера уменьшим размер нашего раздела до 400 Мегабайт:

sudo resize2fs /dev/sda6 400M

Resizing the filesystem on /dev/sda7 to 102400 (4k) blocks.
The filesystem on /dev/sda7 is now 102400 blocks long

Проверка файловой системы Linux

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

$ fsck [опции] устройство

  • -p — автоматическое восстановление
  • -n — только проверка, без восстановления
  • -y — ответить да на все запросы программы
  • — проверить на битые сектора (аналог badblocks
  • -f — принудительная проверка, даже если раздел помечен как чистый
  • -j — внешний журнал файловой системы

Проверка файловой системы Linux выполняется такой командой, проверим диск /dev/sda6, заметьте, что диск должен быть не примонтирован:

sudo fsck -a /dev/sda6

root: clean, 11/32704 files, 37901/102400 blocks

Дефрагментация файловой системы

Хотя и фрагментация нехарактерное явление для файловых систем семейства ext, при очень интенсивном использовании может накапливаться фрагментированость, что будет замедлять работу файловой системы. Для дефрагментации можно использовать стандартную утилиту e4defrag. Просто выполните:

Чтобы проверить нужна ли дефрагментация в Linux выполните эту же команду с опцией -c:

Total/best extents 26247/24953
Average size per extent 1432 KB
Fragmentation score 0
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This device (/dev/sda6) does not need defragmentation.
Done.

В поле Fragmentation score отображен процент фрагментации, как видите, у меня 0, нормой считается до 30, 31-55 небольшие проблемы, и больше 56 — нужна дефрагментация.

Выводы

В одной из предыдущих статей мы рассмотрели как выполняется разметка диска с помощью parted. Из этой статьи вы узнали все что нужно о работе с файловой системой. Теперь у вас не возникнет проблем если у вас вдруг не будет доступа к графическим утилитам и нужно будет исправлять ошибки или настраивать файловую систему. Если остались вопросы, спрашивайте в комментариях!

Примечание. Изменение размера файловой системы на разделе диска может быть опасным и привести к потере данных. Убедитесь, что у вас есть резервная копия, прежде чем выполнять действия, описанные ниже.

Предостережения

1. Файловая система, размер которой вы хотите изменить, должен находиться на последнем разделе диска. В этом случае потери данных не происходит, поскольку мы воссоздаем раздел, не уничтожая фактические данные на нем.
2. Если это не последний раздел, вы должны уничтожить данные и воссоздать новый раздел с желаемым размером.

Расширение файловой системы на основе разделов

1. Сначала проверьте существующий размер файловой системы.

Устанавливаю Ubuntu рядом с Windows 7, причем хочу, чтобы не потерялись данные. Проблема возникает на этапе уменьшения размера диска, чтобы создать раздел для ubuntu. Пробовал изменять файловую систему как во время установки, так и через GParted , загрузившись в Ubuntu. Вот текст ошибки:

Как-то странно разделы отображаются в Ubuntu: разделы D, E, L выглядят как один. В разделе L у меня 60 Гб свободно, а я уменьшаю объем на 40.

Всего у меня 6 разделов в Windows: зарезервированный для Bitlocker 1 мб, зарезервированный системой 100 мб, раздел с системой (диск С в wibdows) и 3 пользовательских раздела. В Linux же я вижу только 4. Что я делаю не так и как создать раздел для Linux без потерь данных?

Introduction

A disk partition must be formatted and mounted before use. The formatting process can also be done for several other reasons, such as changing the file system, fixing errors, or deleting all data.

In this tutorial, you will learn how to format and mount disk partitions in Linux using ext4, FAT32, or NTFS file system.

How to Format Disk Partitions in Linux

Prerequisites

  • A system running Linux
  • A user account with sudo or root privileges
  • Access to a terminal window / command line (Activities > Search > Terminal)

Checking the Partitions

Before formatting, locate a partition you wish to format. To do so, run the lsblk command that displays block devices. Block devices are files that represent devices such as hard drives, RAM disks, USB drives, and CD/ROM drives.

lsblk

The terminal prints out a list of all block devices as well as information about them:

  • NAME – Device names
  • MAJ:MIN – Major or minor device numbers
  • RM – Whether the device is removable (1 if yes, 0 if no)
  • SIZE – The size of the device
  • RO – Whether the device is read-only
  • TYPE – The type of the device
  • MOUNTPOINT – Device’s mount point

We will use the /dev/sdb1 partition as an example.

Locating partitions with lsblk command.

The lsblk command without additional options does not display information about the devices’ file systems.

To display a list containing file system information, add the -f option:

lsblk -f

The terminal prints out the list of all block devices. The partitions that do not contain information on the file system in use are non-formatted partitions.

Locating non-formatted partitions with lsblk -f command.

Formatting Disk Partition in Linux

There are three ways to format disk partitions using the mkfs command, depending on the file system type:

  • ext4
  • FAT32
  • NTFS

The general syntax for formatting disk partitions in Linux is:

mkfs [options] [-t type fs-options] device [size]

Formatting Disk Partition with ext4 File System

1. Format a disk partition with the ext4 file system using the following command:

sudo mkfs -t ext4 /dev/sdb1

2. Next, verify the file system change using the command:

lsblk -f

The terminal prints out a list of block devices.

3. Locate the preferred partition and confirm that it uses the ext4 file system.

The process of formatting disk partition using the ext4 file system in Linux.

Formatting Disk Partition with FAT32 File System

1. To format a disk with a FAT32 file system, use:

sudo mkfs -t vfat /dev/sdb1

2. Again, run the lsblk command to verify the file system change and locate the preferred partition from the list.

lsblk -f

The expected output is:

Formatting disk partition using FAT32 file system in Linux.

Formatting Disk Partition with NTFS File System

1. Run the mkfs command and specify the NTFS file system to format a disk:

sudo mkfs -t ntfs /dev/sdb1

The terminal prints a confirmation message when the formatting process completes.

2. Next, verify the file system change using:

lsblk -f

3. Locate the preferred partition and confirm that it uses the NFTS file system.

Formatting a partition with NTFS file system in Linux.

Mounting the Disk Partition in Linux

Before using the disk, create a mount point and mount the partition to it. A mount point is a directory used to access data stored in disks.

1. Create a mount point by entering:

sudo mkdir -p [mountpoint]

2. After that, mount the partition by using the following command:

sudo mount -t auto /dev/sdb1 [mountpoint]

Note: Replace [mountpoint] with the preferred mount point (example:/usr/media).

There is no output if the process completes successfully.

The process of creating mount point and mounting.

3. Verify if the partition is mounted using the following command:

lsblk -f

The expected output is:

Verifying formatting and mounting partition process.

Understanding the Linux File System

Choosing the right file system before formatting a storage disk is crucial. Each type of file system has different file size limitations or different operating system compatibility.

The most commonly used file systems are:

  • FAT32
  • NTFS
  • ext4

Their main features and differences are:

File System Supported File Size Compatibility Ideal Usage
FAT32 up to 4 GB Windows, Mac, Linux For maximum compatibility
NTFS 16 EiB – 1 KB Windows, Mac (read-only), most Linux distributions For internal drives and Windows system file
Ext4 16 GiB – 16 TiB Windows, Mac, Linux (requires extra drivers to access) For files larger than 4 GB

Conclusion

After following this tutorial, you should be able to format and mount a partition in Linux in various file systems. Partition manipulation is essential for efficient data management, and next, we recommend learning how to delete a partition in Linux.

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как изменить файловую систему udf dvd rw диска на fat32 или ntfs
  • Как изменить файловую систему raw на ntfs на внешнем жестком диске
  • Как изменить файловую систему diskpart
  • Как изменить файл эксель чтобы не могли изменить
  • Как изменить файл эксель на айфоне

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии