====== Debian: Работа с файловыми системами ====== Работа с разделами дисков: * [[parted:parted|parted]] * [[fdisk:fdisk|fdisk]] * [[cfdisk:cfdisk]] * [[sfdisk:sfdisk|sfdisk]] [[posix_acl:posix_acl|Списки доступа (POSIX ACL)]] [[debian:file_system_quota|Дисковые квоты]] [[tmpfs:tmpfs|tmpfs]] Доступ к разделам в Ext3 и Ext4 в [[ms_windows:ms_windows|MS Windows]]: * [[ext2fsd:ext2fsd|Ext2Fsd]] Форматирования USB-накопителя (флешки): * [[mintstick:mintstick|MintStick]] ====== ext4 ====== ===== Создание ===== Пример создания файловой системы ''ext4'' на разделе ''/dev/sdb1'' mkfs.ext4 /dev/sdb1 Пример создания файловой системы с указанием метки: mkfs.ext4 /dev/sdb1 -L МЕТКА-01 ===== Метка файловой системы (label) ===== :!: Для файловой системы ''ext4'' длина метки 16 символов. ==== Получение метки файловой системы ==== e2label /dev/sdb1 ==== Изменение метки ==== e2label /dev/sdb1 МЕТКА-02 ===== Дефрагментация ===== Проверка необходимости дефрагментации: sudo e4defrag -c /dev/ , где '''' — название раздела, который требуется дефрагментировать. Например, ''sda4''. Запуск дефрагментации: sudo e4defrag /dev/ , где '''' — название раздела, который требуется дефрагментировать. Например, ''sda4''. Проверка результата (в последней строке вывода должно быть ⩽0.3% non-contiguous): sudo fsck -n /dev/ ===== Восстановление файлов ===== [[ext4magic:ext4magic|]] ===== Ссылки ===== [[http://extundelete.sourceforge.net/|extundelete — utility to recover deleted files from ext3/ext4 partition]] [[https://help.ubuntu.ru/wiki/ext4]] ====== NTFS ====== Для работы с ''NTFS'' используется пакет ''ntfs-3g'', установка: apt-get install ntfs-3g :!: Драйвер при записи работает медленно! Рекомендуется на внешних устройствах использовать [[#exFAT]] ===== Монтирование ===== Для увеличения скорости записи можно использовать параметр ''big_writes'': mount -o big_writes -t ntfs-3g /dev/sdc1 /mnt/sdc1 ''NTFS''-разделы можно монтировать, добавив в файл ''/etc/fstab'' строки типа: /dev/sda1 /media/disk_C ntfs-3g defaults 0 0 /dev/sda2 /media/disk_D ntfs-3g defaults 0 0 Для FAT-разделов можно использовать строки типа: /dev/sda2 /mnt/win_d vfat umask=0,iocharset=utf8 0 0 Убедится, что ''/dev/sda2'' именно нужный вам раздел можно командой ''mount /dev/sda2'' ===== Форматирование ===== umount /dev/ИМЯ_УСТРОЙСТВА mkfs -t ntfs /dev/ИМЯ_УСТРОЙСТВА ===== Метка раздела ===== ==== Получение метки файловой системы ==== ntfslabel /dev/sdb1 ==== Изменение метки ==== ntfslabel /dev/sdb1 МЕТКА ====== FAT ====== FIXME Для работы с файловыми системами FAT используется пакет ''dosfstools'', установка: apt-get install dosfstools mtools ---- https://wiki.archlinux.org/index.php/FAT ===== Показ параметров ФС ===== minfo -i /dev/sdc1 ===== FAT16 ===== ==== Создание ==== mkdosfs -F 16 -I /dev/sdb1 ==== Метка файловой системы (label) ==== fatlabel /dev/sdc1 NEXTOR Метка должна быть написана в верхнем регистре, иначе будет предупреждение: warning - lowercase labels might not work properly with DOS or Windows ===== FAT32 ===== ==== Создание ==== mkdosfs -F 32 -I /dev/sdb1 ==== Метка файловой системы (label) ==== dosfslabel /dev/sdb1 multisystem ==== Проверка файловой системы ==== dosfsck /dev/sdc1 ===== exFAT ===== Для работы с [[http://ru.wikipedia.org/wiki/ExFAT|exFAT]] нужен пакет [[https://packages.debian.org/stable/otherosfs/exfat-fuse|exfat-fuse]] apt-get install exfat-fuse exfat-utils Пример монтирования: mount -t exfat /dev/sdc1 /mnt/sdc1 ==== Создание раздела ==== select /dev/sdс print mklabel msdos mkpart primary ntfs 4Mb 1028Mb quit ==== Метка раздела ==== exfatlabel /dev/sdc1 label_test ==== Создание файловой системы ==== mkfs -t exfat /dev/sdc1 ==== Проверка файловой системы ==== exfatfsck /dev/sdc1 ====== HFS ====== Работа с файловыми системами ''HFS'', ''HFS+'' apt-get install hfsprogs hfsplus ====== Монтирование ====== FIXME Команда ''mount'' :!: Предварительно нужно создать папку (точку монтирования) Пример: mount /dev/sda3 /mnt/sda3 mkdir /mnt/sda3/boot mount /dev/sda1 /mnt/gentoo/sda3 Монтирование все файловых систем перечисленных в ''/etc/fstab'' mount -a ---- :!: Если необходимо разместить папку ''/tmp'' в отдельном разделе, то надо изменить права доступа к этой папке после монтирования: chmod 1777 /mnt/tmp Это также относится к ''/var/tmp'': chmod 1777 /var/tmp Еще нам потребуется смонтировать файловую систему ''proc'' (виртуальный интерфейс ядра) в папку ''/proc'' Но сначала надо поместить в разделы нужные файлы. ---- [[wpru>Mount]] ===== bind ===== В качестве альтернативы ссылкам файловой системы можно использовать параметр ''bind'' Пример монтирования папки ''/home/user1'' в ''/mnt/share1'' mount -o bind,ro /home/user1 /mnt/share1 запись в ''fstab'' /home/user1 /mnt/share1 none bind,ro 0 0 ---- [[https://www.s3blog.org/alternativa-simvolnym-ssylkam-mount-bind.html|S3.Blog :: Linux: Альтернатива символьным ссылкам: mount --bind]] [[https://access.redhat.com/documentation/ru-ru/red_hat_enterprise_linux/6/html/global_file_system_2/s1-manage-pathnames|4.12. mount --bind и контекстные ссылки Red Hat Enterprise Linux 6 | Red Hat Customer Portal]] [[https://www.linux.org.ru/forum/admin/11484149|mount ---bind через fstab — Admin — Форум]] ===== Файл fstab ===== Файл fstab содержит информацию о различных файловых системах и устройствах хранения информации в вашем компьютере. Это всего лишь один файл, определяющий, как диск (раздел, партиция) будет использоваться или как будет встроена в остальную систему. Полный путь к файлу - /etc/fstab. Это чистый текстовый файл, который вы может открыть в вашем любимом редакторе, но редактировать вы его можете только от суперпользователя. ==== Структура файла ==== Каждая запись имеет следующие поля (которые разделяются пробелом или табуляцией): |''file system''|''dir''|''type''|''options''|''dump''|''pass''| ^''file system''|Файловая система.\\ Оно сообщает команде mount, что монтировать, поэтому вам следует заменить его на имя монтируемого устройства.| ^''dir''| Папка, куда монтировать ''file system''| ^''type''|Тип, файловой системы монтируемого устройства\\ Самые распространённые файловые системы: ''ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap,auto''\\ ''auto'' НЕ является файловой системой, она позволяет команде mount определять, какой тип файловой системы используется. Это удобно для съёмных устройств, дисководов и ''cdrom''| ^''options''|Варианты auto Файловая система монтируется при загрузке автоматически или после выполнения команды 'mount -a'. noauto Файловая система может быть смонтирована только вручную. exec Это вариант по умолчанию. Она позволяет вам исполнять бинарные файлы на этом разделе диска. noexec Бинарные файлы не выполняются. НИКОГДА не используйте этот вариант на вашей корневой системе! ro Монтирует файловую систему только для чтения rw Монтирует файловую систему для чтения/записи sync Все операции ввода/вывода должны выполняться синхронно async Все операции ввода/вывода должны выполняться асинхронно user Разрешает любому пользователю монтировать файловую систему. Применяет варианты noexec,nosuid,nodev, если они не переопределены. nouser Только суперпользователь может монтировать файловую систему. Это также настройка по умолчанию. defaults Использовать значения по умолчанию. То же самое, что и rw,suid,dev,exec,auto,nouser,async. suid Разрешить операции с suid и sgid битами. В основном используются, чтобы позволить пользователям выполнять бинарные файлы со временно приобретёнными привилегиями для выполнения определённой задачи. nosuid Запрещает операции с suid и sgid битами. nodev Данный вариант предполагает что на монтируемой файловой системе не будут созданы файлы устройств (/dev). Корневая папка и целевая папка команды chroot всегда должны монтироваться с вариантом dev или defaults. noatime Отключить возможность получения информации о последнем доступе/изменении файла. notail Данный вариант работает только с ReiserFS! Отключить "упаковку хвостов файлов". | ^''dump''|Поле используется утилитой ''dump'' для того чтобы решить, когда делать резервную копию. Будучи установленной ''dump'' проверяет эту запись и использует число, чтобы решить, надо ли делать резервную копию. Возможные значения поля - 0 и 1. Если 0, то ''dump'' игнорирует файловую систему, если 1, то ''dump'' сделает резервную копию. У большинства пользователей ''dump'' не установлен, поэтому это могут записать в поле ''dump'' 0| ^''pass''|Пропуск.\\ ''fsck'' смотрит на число, подставленное в этом поле и решает, в каком порядке проверять файловую систему.\\ Возможные значения 0, 1 и 2.\\ Файловые систему со значением поля, равным 0, не будут проверены утилитой ''fsck''.\\ У корневой системы должен быть наибольший приоритет, 1, остальные файловые системы, которые вы хотите проверять, должны иметь 2| https://ru.wikipedia.org/wiki/Fstab ===== Работа дисками по UUID ===== [[https://wiki.debian.org/ru/Part-UUID|ru/Part-UUID - Debian Wiki]] [[https://pingvinus.ru/note/start-job-dev-disk-by|Долгая загрузка системы. Сообщение A start job is running for dev-disk-by. Linux статьи]] ==== Получение списка атрибутов дисков ==== Данные хранятся в файле: ''/etc/blkid.tab'' Обновление файла происходит по команде: blkid ==== Монтирование по UUID ==== Монтирование командой mount -U ИДЕНТИФИКАТОР_UUID ТОЧКА_МОНТИРОВАНИЯ Монтирование через ''/etc/fstab'', вместо имени устройства указываем ''UUID'' UUID=ИДЕНТИФИКАТОР_UUID ТОЧКА_МОНТИРОВАНИЯ ТИП_ФАЙЛОВОЙ СИСТЕМЫ ВАРИАНТЫ ====== Отчёт об использовании дискового пространства ====== Команда: df Отчет с выдачей типа для каждой файловой системы: df -T ====== Провека файловых систем при загрузке ====== ===== Перезагрузка с последующей проверкой ===== shutdown -rF now ===== Проверка при каждой загрузке ===== FIXME В файле ''/etc/default/rcS'': FSCKFIX=yes ====== Атрибуты файлов ====== FIXME https://ru.wikipedia.org/wiki/Lsattr https://ru.wikipedia.org/wiki/Chattr [[http://funix.ru/theory/atributy-fajlov-v-linux.html|Атрибуты файлов в Linux]] ====== Монтирование .img ====== FIXME Пример 1 fdisk -lu Raspbian_For_OrangePiplus_v0_8_0.img Disk Raspbian_For_OrangePiplus_v0_8_0.img: 3,4 GiB, 3670016000 bytes, 7168000 sectors 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: 0x000b5098 Device Boot Start End Sectors Size Id Type Raspbian_For_OrangePiplus_v0_8_0.img1 40960 122879 81920 40M 83 Linux Raspbian_For_OrangePiplus_v0_8_0.img2 122880 7167999 7045120 3,4G 83 Linux Пример 2 mount -t auto -o loop,offset=$((122880*512)) Raspbian_For_OrangePiplus_v0_8_0.img /tmp/1 sudo fdisk -lu OSMC_TGT_rbp2_20160621.img Disk OSMC_TGT_rbp2_20160621.img: 256 MiB, 268435456 bytes, 524288 sectors 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: 0x000c3329 Device Boot Start End Sectors Size Id Type OSMC_TGT_rbp2_20160621.img1 2048 499711 497664 243M c W95 FAT32 (LBA) mount -t auto -o loop,offset=$((2048*512)) OSMC_TGT_rbp2_20160621.img /tmp/1 [[http://www.linuxquestions.org/questions/linux-general-1/how-to-mount-img-file-882386/|[SOLVED] how to mount .img file]] {{tag>Debian Admin File_System}}