10 июля 2024 Linux losetup cfdisk dd mkfs
Для получения навыка работы в дисковыми устройствами в среде Linux лучше начать экспериментировать в виртуальными устройствами в домашней папке пользователя
Это позволит безопасно для данных и оборудования освоить процессы разметки раздело, создания файловых систем, монтирования, размонтирования, так же лучше понять принципы работы ядра Linux с данными на дисках
Процесс экспериментов сводится к созданию обычного файла в домашней директори, а затем настройка ядра Linux для представления созданного файла как обычного дискового устройства с которым можно проводить безопасные экперименты
- Создать пустой файл размером 1Гб
dd if=/dev/zero of=test-image bs=1M count=1024 1024+0 записей получено 1024+0 записей отправлено 1073741824 байт (1,1 GB, 1,0 GiB) скопирован, 0,678707 s, 1,6 GB/s
- Подключить файл как блочное устройство(диск), тут с помощью утилиты losetup ядро получает имя нового виртуального устройства и имя файла, затем ядро связывает эти данные в новое виртуальное устройство
-
sudo losetup /dev/loop33 test-image
- Теперь в директории /dev/ появлось виртуальное устройство /dev/loop33 и с ним можно работать как с обычными диском используя инструменты fdisk cfdisk или gparted
Разметить разделы на новом "диске" под свои тестовые нужны
sudo cfdisk /dev/loop33
- Так как структура файла изменилась и на нём появились разделы, необходимо перемонтировать файл-виртуальное устройство
# отмонтировать sudo losetup -d /dev/loop33 # примонтировать с поиском разделов sudo losetup -P /dev/loop33 test-image
- Теперь в директории /dev/ появятся файлы устройств-разделов находящихся в тестовом файле и с ними можно работать как обычными разделами, там можно создавать файловые системы
ffsdmad@basm:~$ sudo mkfs.ext4 /dev/loop33p1 [sudo] пароль для ffsdmad: mke2fs 1.46.5 (30-Dec-2021) Discarding device blocks: done Creating filesystem with 128000 4k blocks and 128000 inodes Filesystem UUID: d184b921-84f1-4fbe-8e98-729e67fbbfeb Superblock backups stored on blocks: 32768, 98304 Allocating group tables: done Сохранение таблицы inod'ов: done Создание журнала (4096 блоков): готово Writing superblocks and filesystem accounting information: готово ffsdmad@basm:~$ sudo mkfs.ext4 /dev/loop33p2 mke2fs 1.46.5 (30-Dec-2021) Discarding device blocks: done Creating filesystem with 133888 4k blocks and 33520 inodes Filesystem UUID: fc175588-43de-4731-973c-875722ed273f Superblock backups stored on blocks: 32768, 98304 Allocating group tables: done Сохранение таблицы inod'ов: done Создание журнала (4096 блоков): готово Writing superblocks and filesystem accounting information: готово
- Просмотр разделов устройства с помощью консольной версии gparted
- Смонтировать новые файловые системы
# создаёт две директории в /tmp mkdir -p /tmp/{1..2} # монтирование в созданные директории sudo mount /dev/loop33p1 /tmp/1 sudo mount /dev/loop33p2 /tmp/2
- Заполнить тестовыми данными
sudo cp -r /etc /tmp/1/ sudo cp -r /var/mail /tmp/2/ # открыть смонтированные файловые системы в файловом менеджере mc mc /tmp/1/ /tmp/2/
- Отмонтировать файловые системы, отмонтировать виртуальные устройства и удалить следы
# отмонтировать файловые системы sudo umount /tmp/{1..2} # отмонтировать виртуальное устройств losetup -d /dev/loop33 # удалить файл устройства rm test-image