Форматирование SD-карты, USB-накопителя, флэш-накопителя на Linux с помощью parted

Как человеку, работающему с операционными системами, компьютерами и электронными устройствами, вам зачастую необходимо отформатировать карту Micro SD, USB-накопитель / флэш-диск с разделом fat32 или чем то подобным.
В этом руководстве мы рассмотрим, как можно отформатировать USB-накопитель и SD-карту в любой системе Linux, используя утилиту CLI parted.
В операционной системе Linux есть графические инструменты, такие как GParted и GNOME Disks, которые можно использовать в графическом интерфейсе для форматирования SD-карт, USB-накопителей и т.д.
Это руководство ориентировано на использование инструмента командной строки (parted).
Также можно использовать другие инструменты, такие как fdisk, gdisk, cfdisk, sfdisk.
Прежде чем мы начнем
Прежде чем начать, вам необходимо установить приложение GNU Parted в вашей системе Linux.
GNU Parted – это программа для создания и управления таблицами разделов.
Ее интерфейс – GParted.
Установите GNU Parted на вашем Linux-компьютере, используя команды, представленные ниже.
--- Debian / Ubuntu --- $ sudo apt update $ sudo apt -y install parted --- Fedora / CentOS --- $ sudo yum -y install parted $ sudo dnf -y install parted --- Arch Linux / Manjaro --- $ sudo pacman -S parted
Вы также должны подключить свои SD-карты или USB / флэш-накопитель к компьютеру и убедиться, что ОС их видит.
Lsblk – это инструмент командной строки Linux, используемый для отображения информации обо всех доступных или указанных устройствах.
$ lsblk --all NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:0 1 14.9G 0 disk nvme0n1 259:0 0 238.5G 0 disk ├─nvme0n1p1 259:1 0 1G 0 part /boot └─nvme0n1p2 259:2 0 237.5G 0 part ├─fedora-root 253:0 0 70G 0 lvm /sysroot ├─fedora-swap 253:1 0 7.7G 0 lvm [SWAP] └─fedora-home 253:2 0 159.8G 0 lvm /var/home
Моя флешка на /dev/sdb.
Когда USB-устройство подключено к вашему компьютеру, dmesg – инструмент для вывода или управления буфером ядра, покажет информацию о подключении.
$ dmesg .... [ 6209.409187] usb-storage 1-1:1.0: USB Mass Storage device detected [ 6209.409321] scsi host0: usb-storage 1-1:1.0 [ 6209.409406] usbcore: registered new interface driver usb-storage [ 6209.412727] usbcore: registered new interface driver uas [ 6210.741626] scsi 0:0:0:0: Direct-Access SMI USB DISK 1100 PQ: 0 ANSI: 4 [ 6210.742549] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 6210.743829] sd 0:0:0:0: [sdb] 31129600 512-byte logical blocks: (15.9 GB/14.8 GiB) [ 6210.745121] sd 0:0:0:0: [sdb] Write Protect is off [ 6210.745128] sd 0:0:0:0: [sdb] Mode Sense: 43 00 00 00 [ 6210.746338] sd 0:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 6210.868622] usb 1-1: reset high-speed USB device number 8 using xhci_hcd [ 6211.326903] sdb: [ 6211.332089] sd 0:0:0:0: [sdb] Attached SCSI removable disk
Форматирование SD-карты, USB-накопителя, на Linux с parted
Подтвердите, что parted установлен.
$ parted --version parted (GNU parted) 3.2.153 Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by <http://git.debian.org/?p=parted/parted.git;a=blob_plain;f=AUTHORS>.
Подтвердите название SD-карты, флешки, которую хотите отформатировать.
$ lsblk --all
Прежде чем мы отформатируем наше USB-устройство, мы сначала удалим подписи файловой системы или таблицы разделов, которые могут существовать на устройстве.
$ sudo wipefs --all --force /dev/sdb /dev/sdb: 5 bytes were erased at offset 0x00008001 (iso9660): 43 44 30 30 31 /dev/sdb: 2 bytes were erased at offset 0x000001fe (dos): 55 aa /dev/sdb: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
Использование Parted для форматирования SD-карты, USB-накопителя, флэшки на Linux
Parted имеет два режима: командной строки и интерактивный.
Parted всегда должен начинаться с:
$ sudo parted device
Где:
device – это SD-карта, USB-накопитель или флэшка.
Если вы опустите аргумент устройства, parted попытается угадать, какое устройство вы имеете ввиду.
Мы будем использовать интерактивный режим, который упрощает процесс, автоматически применяя все команды parted к указанному устройству.
В моем сценарии вот команда, которую я выполню, чтобы начать работать с устройством:
$ sudo parted /dev/sdb GNU Parted 3.2.153 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
Вы заметите, что приглашение командной строки изменится на (parted)
Чтобы увидеть список доступных команд, введите:
(parted) help
Шаг 1: Создать новую таблицу разделов
Вам необходимо создать или воссоздать таблицу разделов вашего устройства
Чтобы создать новую таблицу разделов Master Boot Record / MS-DOS:
(parted) mklabel msdos
Подтверждение:
(parted) p Model: SMI USB DISK (scsi) Disk /dev/sdb: 15.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags (parted)
Для таблицы разделов GPT необходимо использовать:
(parted) mklabel gpt
Шаг 2: Создать раздел на устройстве
Вы можете выбрать количество и размер разделов, на которые должны быть разбиты устройства.
Синтаксис команды, используемый для создания разделов:
(parted) mkpart part-type fs-type start end
Я создам раздел, начинающийся с 1 МБ и заканчивающийся на 100%.
(parted) mkpart primary fat32 1MiB 100%
Подобные варианты использования:
Не запускайте это – только примеры
# Создание раздела ext4 (parted) mkpart primary ext4 1MiB 100% # Создание раздела XFS (parted) mkpart primary xfs 1MiB 100% # Создание двух разделов ext4 (parted) mkpart primary ext4 1MiB 5GiB (parted) mkpart primary ext4 5GiB 100%
Подтвердите изменения, которые мы сделали:
(parted) p Model: SMI USB DISK (scsi) Disk /dev/sdb: 15.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 15.9GB 15.9GB primary fat32 lba
Шаг 3: отформатируйте раздел
Последний шаг – отформатировать раздел в соответствии с типом файловой системы по вашему выбору.
Я отформатирую раздел устройства USB в FAT32.
(parted) quit Information: You may need to update /etc/fstab. $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:0 1 14.9G 0 disk └─sdb1 8:1 1 14.9G 0 part $ sudo mkfs.vfat -F32 /dev/sdb1 mkfs.fat 4.1 (2017-01-24) mkfs.vfat: failed whilst writing FAT
Подтвердите новые изменения:
$ lsblk -o +label,fstype,uuid /dev/sdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT LABEL FSTYPE UUID sdb 8:0 1 14.9G 0 disk └─sdb1 8:1 1 14.9G 0 part vfat A6B5-97C8
Проверьте, сможете ли вы смонтировать устройство.
$ mkdir ~/mnt $ sudo mount /dev/sdb1 ~/mnt $ df -hT ~/mnt Filesystem Type Size Used Avail Use% Mounted on /dev/sdb1 vfat 15G 4.5G 11G 31% /var/home/jmutai/mnt $ sudo umount ~/mnt
Как сделать это не в интерактивном режиме
Мы можем запустить все команды в терминале, не вызывая интерактивный экран.
sudo parted -s -a optimal -- /dev/sdb mklabel msdos sudo parted -s -a optimal -- /dev/sdb mkpart primary fat32 1MiB 100% sudo parted -s -- /dev/sdb align-check optimal 1 sudo mkfs.vfat -F32 /dev/sdb1