Как примонтировать «флешку» в Linux
Недавно решил переконвертировать фильмы в формате AVI в MPEG, чтобы смотреть с «флешки» на странном телевизоре BBK, который воспроизводит не все «авишки» а вот с DVD-шным форматом проблем не было. Как я уже писал раньше, 90% всего времени я провожу за экономной Raspberry PI 3, а вот роль тяжелой артиллерии выполняет мой 6-ядерный системный блок. Через ssh я зашел на удаленный «системник» с Ubuntu 16.04, скачал через Rtorrent нужные фильмы и перекодировал при помощи ffmpeg. После удачного конвертирования я решил сбросить эти файлы на «флешку». Но каково было мое удивление, когда флеш-накопитель не определился системой автоматически. Это в моей практике было впервые, поэтому пришлось решать эту проблему при помощи Google. Если бы я запустил Ubuntu 16.04 в ее графическом режиме, то с монтированием «флешки» проблем не возникло бы, а вот в консольном режиме такое случается часто.
Монтирование носителя при помощи udisksctl
Сначала узнаем как система определила нашу подключенную «флешку». Выполним команду:
sdb 8:16 0 596,2G 0 disk
├─sdb2 8:18 0 5,9G 0 part
├─sdb3 8:19 0 561G 0 part /mnt/5b4d2ffa-cfa0-4419-8736-3c5e97cf1073
└─sdb1 8:17 0 29,3G 0 part
sr0 11:0 1 1024M 0 rom
sdc 8:32 1 7,5G 0 disk
└─sdc1 8:33 1 7,5G 0 part
sda 8:0 0 465,8G 0 disk
├─sda2 8:2 0 92,9G 0 part /home
├─sda3 8:3 0 344,1G 0 part /mnt/938eb7e4-1e03-48c9-a9d2-4b7a5f263b01
└─sda1 8:1 0 28G 0 part /
sr1 11:1 1 1024M 0 rom
Из этого видно, что наша «флешка», размером 7,5G, имеет системное имя — sdc. И хотя эта команда ее видит, в каталоге /mnt были примонтированы лишь два жестких диска, а /media был вообще пустой. Поэтому, чтобы примонтировать нужное устройство, воспользуемся помощью udisksctl. Это консольная утилита, которая входит в состав пакета UDisks. Выполним следующую команду:
udisksctl mount -b /dev/sdc1
/dev/sdc1 — моя «флешка»
-b — данный параметр указывает системе, что нужно примонтировать блочное устройство
После этого видим примерно такой вывод:
==== AUTHENTICATING FOR org.freedesktop.udisks2.filesystem-mount-other-seat ===
Для монтирования UFD 2.0 Silicon-Power8G (/dev/sdc1) требуется подтверждение подлинности пользователя
Authenticating as: dm. (dm)
Вводим пароль и видим, что наш носитель появился в каталоге /media
==== AUTHENTICATION COMPLETE ===
Mounted /dev/sdc1 at /media/dm/Flash_Drive
После монтирования устройства можно работать с ним как обычно, удалять, перемещать и копировать файлы. Если нужно отмонтировать устройство, то выполните команду:
udisksctl unmount -b /dev/sdc1
Монтирование устройств при помощи mount
Точки монтирования нужно создавать в каталогах /mnt либо /media. Для этого выполним команду:
Теперь дадим этому каталогу права доступа для простых пользователей:
Далее определим имя монтируемого устройства и тип файловой системы командой:
Устр-во Загрузочный Start Конец Секторы Size Id Тип
/dev/sdc1 2048 15730687 15728640 7,5G 7 HPFS/NTFS/exFAT
Теперь нужно запомнить такую деталь. «Флешка», как правило, может иметь файловую систему FAT32 или NTFS. Поэтому нам нужно сообщить об этом системе. Для FAT32 выполним следующую команду:
sudo mount -t vfat -o rw /dev/sdc1 /mnt/usb
-t vfat — параметр, который указывает о файловой системе FAT 32 носителя
/dev/sdc1 — наше монтируемое устройство
/mnt/usb — точка монтирования
-o rw — разрешаем чтение и запись
sudo mount -t ntfs -o rw /dev/sdc1 /mnt/usb
-t ntfs — параметр, который указывает о файловой системе NTFS носителя
/dev/sdc1 — наше монтируемое устройство
/mnt/usb — точка монтирования
-o rw — разрешаем чтение и запись
Также иногда будет полезно добавить следующие параметры:
iocharset=utf8 — задает кодировку utf8
codepage=866 — добавляет поддержку русского языка
Команда будет иметь следующий вид:
sudo mount -t ntfs -o rw,iocharset=utf8,codepage=866 /dev/sdc1 /mnt/usb
Иногда устройство может не монтироваться, поэтому можно будет применить параметр — -o force
Вся команда будет иметь следующий вид:
sudo mount -t ntfs -o force /dev/sdc1 /mnt/usb
Чтобы отмонтировать устройство выполните:
Для монтирования CD/DVD дисков нужно выполнить команду:
sudo mount -t iso9660 -o ro /dev/cdrom /cd
-t iso9660 — данный параметр указывает файловую систему iso9660
-o ro — разрешаем только чтение
/cd — точка монтирования, которую предварительно нужно создать командой:
Для монтирования образа диска ISO выполним команду:
sudo mount -t iso9660 -o loop ~/image.iso ~/iso
~/image.iso — образ ISO
~/iso — точка монтирования
-o loop — этот параметр указывает об использовании .iso файла
Надеюсь информация была полезной. На этом разрешите откланяться и удачи!
Как мне прочитать раздел HPFS/NTFS (загрузочный) в Ubuntu (15.10)?
Я хотел бы прочитать содержимое старого жесткого диска, который отформатирован как раздел HPFS/NTFS (загрузочный); Я не уверен, что загрузочная часть имеет значение. Я попытался смонтировать диск, но не могу. Как я могу прочитать этот диск?
Когда используешь sudo fdisk -l диск отображается как:
:~$ sudo fdisk -l Device Boot Start End Sectors Size Id Type /dev/sdf1 * 63 488392064 488392002 232.9G 7 HPFS/NTFS/exFAT
Попытка использования mount :
:~$ sudo mount /dev/sdf1 /mnt/ntfs1 mount: wrong fs type, bad option, bad superblock on /dev/sdf1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so.
Попытка использования ntfs-3g ;
:~$ sudo ntfs-3g /dev/sdf1 /mnt/ntfs1 NTFS signature is missing. Failed to mount '/dev/sdf1': Invalid argument The device '/dev/sdf1' doesn't seem to have a valid NTFS. Maybe the wrong device is used? Or the whole disk instead of a partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
Редактировать:
Попытка использования mount -t exfat :
:~$ sudo mount -t exfat /dev/sdf1 /mnt/ntfs1 FUSE exfat 1.1.0 ERROR: exFAT file system is not found.
:~$ sudo fsck -f /dev/sdf1 fsck from util-linux 2.26.2 e2fsck 1.42.12 (29-Aug-2014) ext2fs_open2: Bad magic number in super-block fsck.ext2: Superblock invalid, trying backup blocks. fsck.ext2: Bad magic number in super-block while trying to open /dev/sdf1 The superblock could not be read or does not describe a valid ext2/ext3/ext4 filesystem. If the device is valid and it really contains an ext2/ext3/ext4 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock: e2fsck -b 8193 or e2fsck -b 32768
2 ответа
Для начала НИКОГДА не бегать fsck на раздел, когда вы не знаете, что это правильный путь. Проблема в том, что fsck это инструмент для ремонта, и поэтому он может записывать данные на диск. В вашем случае вы применили его еще до того, как узнали, какая файловая система используется на диске. Это чрезвычайно опасно, поскольку инструмент для ремонта мог запутаться и усугубить ситуацию, а не улучшить ее. Такой исход маловероятен, но возможен. Вы, вероятно, не причинили вреда, но есть небольшая вероятность, что вы нанесли больший ущерб диску, используя fsck в теме.
Чтобы узнать, какая файловая система находится на диске, используйте blkid , как в:
$ sudo blkid /dev/sdb3 /dev/sdb3: UUID="493344495F520D15" TYPE="ntfs"
Конечно, ваш вывод, вероятно, будет другим, но в этом примере показан том NTFS. Если вы не получите никакого вывода, это означает, что blkid не удалось определить файловую систему, что, в свою очередь, означает, что она очень сильно повреждена. Если есть выход, но TYPE= показывает что-то другое, чем ntfs , это означает, что это не том NTFS. Возможно, результат будет очевиден, и вы можете продолжить с этого момента, или, возможно, вам нужно будет отправить подробности для получения дополнительной информации.
С известной файловой системой вы можете использовать специфичные для файловой системы инструменты монтирования и, возможно, инструменты восстановления. Вы уже пробовали монтировать с помощью вероятных инструментов (NTFS и exFAT). Код типа для раздела (0x07) когда-то обычно использовался для HPFS, но это было бы вероятно, только если бы диск использовался с OS/2, и вы говорите, что он использовался с Windows 7.
Перед использованием потенциально разрушительных инструментов восстановления целесообразно сделать резервное копирование низкого уровня, например:
sudo dd if=/dev/sdf1 of=/path/to/lots/of/space/sdf1.img
Эта команда выполняет резервное копирование /dev/sdf1 в файл sdf1.img в /path/to/lots/of/space/ , Убедитесь, что достаточно свободного места для всего раздела — около 233 ГБ в вашем случае. Создание этой резервной копии даст вам возможность восстановиться, если инструмент восстановления усугубит ситуацию, как это иногда случается.
Я догадываюсь, что диск использует NTFS, но он поврежден и / или не был правильно отключен. Если это так, вы должны сначала восстановить его с помощью инструментов Windows. Linux ntfsfix утилита плохо названа; он выполняет только самые минимальные проверки, а затем помечает диск как требующий внимания в Windows. В Linux нет поддержки NTFS fsck так что не стоит пытаться использовать fsck на томе NTFS.
Также возможно, что происходит нечто более экзотическое. Например, диск мог использоваться в RAID-массиве, и в этом случае вы не сможете восстановить что-либо без других дисков из того же массива. (Особенности будут зависеть от типа используемого RAID и других деталей.)
В худшем случае вы можете использовать PhotoRec для восстановления отдельных файлов.
Еще один момент: в своих комментариях вы сказали, что запускали GParted на /dev/sdf1 , Это бесполезно — и даже потенциально опасно. /dev/sdf1 раздел, но GParted предназначен для использования на всем диске, то есть /dev/sdf ,
How to automount HPFS/NTFS (exFAT) 64GB USB Stick in Ubuntu 16?
sudo lsusb will tell you what USB devices Linux detects. Whether a USB storage device mounts, or is detected, are separate issues. sudo lsusb -v will give verbose output, possibly more information than you want if the OS truly doesn’t recognize the device.
To unmount it, just enter sudo umount /media/exfat in the Terminal.
In Ubuntu 16, exfat-fuse and exfat-utils packages are available in Universe repository.
So enable this repository inorder to install these two packages on Ubuntu 16.
sudo add-apt-repository universe
Permanent Mount
In order to mount your USB drive permanently after reboot add the following line into your /etc/fstab config file:
/dev/sdc1 /media/usb-drive exfat defaults 0 0
However, the above mount line may fail if you add or remove additional drives from your Linux system. From this reason it is recommend to use partition UUID instead of a raw block device name. To do so, first locate a UUID of your USB drive:
lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/2016-08-30-11-31-31-00 -> ../../sdb1 lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/3eccfd4e-bd8b-4b5f-9fd8-4414a32ac289 -> ../../sda1 lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/4082248b-809d-4e63-93d2-56b5f13c875f -> ../../sda5 lrwxrwxrwx 1 root root 10 Mar 28 01:09 /dev/disk/by-uuid/8765-4321 -> ../../sdc1 lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/E6E3-F2A2 -> ../../sdb2
Based on the above ls command output we can see that the UUID belonging to block device sdc1 is
8765-4321 thus our /etc/fstab mount line will be:
/dev/disk/by-uuid/8765-4321 /media/usb-drive exfat 0 0
Run mount -a command to mount all not yet mounted devices.