Не копируется на диск ubuntu
Если у вас есть домашний сервер или сервер в интернете, то вам понадобится способ для безопасного перемещения файлов между машинами. Между локальными машинами мы могли бы просто переносить данные с помощью флешки, но на удаленный сервер нужно передавать данные только через сеть. Есть много способов реализации этой задачи.
В этой статье мы рассмотрим как выполняется копирование файлов с помощью утилиты scp (Secure Copy Command), а также что из себя представляет команда Linux scp. При передаче файлы шифруются, так что больше никто не сможет получить к ним доступ и самое интересное, что вам не нужно настраивать FTP или другое дополнительное программное обеспечение. Будет достаточно сервера SSH.
Проблема: FAT32 имеет ограничение в 4 ГБ для размера файла
Различные сценарии и файловые системы рассматриваются в поисках альтернатив с учетом
- проблема с размером файла
- какие операционные системы должны читать / записывать USB-накопитель
Windows
Поэтому, если вам нужен полный доступ для чтения / записи из Ubuntu и Windows, я бы предложил вам использовать NTFS, которая имеет журналирование и очень отлажена и отлажена как [проприетарная] файловая система для Windows. (Также возможно использовать exFAT.)
- В Ubuntu вы можете использовать программу с графическим интерфейсом gparted создать файловую систему NTFS.
- В Windows легко создавать файловые системы NTFS и exFAT (они являются родными).
Синтаксис и опции
Общий синтаксис cp выглядит вот так:
$ cp опции файл-источник файл-приемник
$ cp опции файл-источник директория-приемник/
После выполнения команды файл-источник будет полностью перенесен в файл-приемник. Если в конце указан слэш, файл будет записан в заданную директорию с оригинальным именем.
Утилита имеет несколько интересных опций, которые могут сильно помочь при нестандартных задачах копирования, поэтому давайте их рассмотрим:
- --attributes-only - не копировать содержимое файла, а только флаги доступа и владельца;
- -f, --force - перезаписывать существующие файлы;
- -i, --interactive - спрашивать, нужно ли перезаписывать существующие файлы;
- -L - копировать не символические ссылки, а то, на что они указывают;
- -n - не перезаписывать существующие файлы;
- -P - не следовать символическим ссылкам;
- -r - копировать папку Linux рекурсивно;
- -s - не выполнять копирование файлов в Linux, а создавать символические ссылки;
- -u - скопировать файл, только если он был изменён;
- -x - не выходить за пределы этой файловой системы;
- -p - сохранять владельца, временные метки и флаги доступа при копировании;
- -t - считать файл-приемник директорией и копировать файл-источник в эту директорию.
MacOS
В MacOS можно использовать FAT32, UDF и exFAT.
Вы также можете использовать ext4 с обходным решением, Ubuntu Server с SSH-сервером на виртуальной машине. (Я думаю, что тот же обходной путь подойдет и для Windows.) Это может быть полезно, если вы собираетесь получить доступ ко многим файлам через диск и его файловую систему, но, вероятно, не с небольшим USB2-приводом.
Копирование файлов - одна из задач, наиболее часто возникающих перед пользователями персонального компьютера. Конечно, можно открыть файловый менеджер, войти в нужную папку и скопировать файл с помощью контекстного меню - тут не о чем говорить. Но в этой статье я хотел бы рассмотреть копирование файлов в Linux с помощью терминала.
Не всегда есть доступ к файловому менеджеру: из-за различных поломок графическая оболочка на домашнем компьютере может быть недоступна, а на серверах используется только консольный интерфейс. К тому же копирование файлов Ubuntu через терминал намного эффективнее, и вы сами в этом убедитесь. Сегодня мы рассмотрим не только обычное копирование командой cp Linux, но и не совсем обычное: с помощью tar и find.
Копирование файлов по регулярным выражениям в Linux
В утилите find можно применять различные условия и регулярные выражения для поиска файлов. Я уже немного писал о ней в статье как найти новые файлы в Linux. Мы можем скопировать все найденные с помощью find файлы, вызвав для каждого из них команду cp. Например, копируем все файлы в текущей директории, содержащие в имени только цифры:
find . -name 6 -exec cp <> ~/Документы \
Здесь точка указывает на текущую директорию, а параметр name задает регулярное выражение. Параметром exec мы задаем, какую команду нужно выполнить для обнаруженных файлов. Символ <> - подставляет имя каждого файла.
Но не find'ом единым такое делается. То же самое можно получить, запросив список файлов директории в ls, отфильтровав его по регулярному выражению egrep и передав имена файлов по очереди в cp с помощью xargs:
ls -1 ~/ | egrep '[a-zA-Z]' | xargs cp -t ~/Папка/
Это не совсем удобный способ копировать файлы Linux, но всё же он возможен. Будут скопированы все файлы из домашней директории, содержащие в имени только английские буквы.
Запись файлов на диск в Ubuntu
Здесь уже система немного другая, нельзя сразу взять несколько файлов и закинуть их на диск. Для того чтобы компьютер или другие приборы смогли правильно работать с файлами на диске нужно использовать файловую систему ISO9660. Это стандартная файловая система, она поддерживается как компьютерами с Winows и Linux, так и старыми музыкальными центрами и DVD проигрывателями. Поэтому сначала открываем меню Dash, вводим в поиске Brasero и запускаем ее:
В открывшимся окне создаем новый диск, выбираем Диск с данными:
Дальше с помощью кнопки со значком + добавляем файлы в проект. Это могут быть любые нужные файлы, например: музыка, фото, видео, документы и т д.
После того как добавите все нужные файлы, можете сохранить диск в виде образа или сразу же записать диск Ubuntu с помощью кнопки записать.
Дальше, как и в предыдущем примере, выбираем параметры записи и дождемся завершения.
Выводы
В этой статье мы рассмотрели как выполняется передача файлов scp, как это работает и что вы можете сделать с помощью этой утилиты. Как вы видите, перемещать файлы с одного сервера на другой очень просто. В Linux достаточно понять основы чтобы начать работать эффективнее! А команда scp один из таких инструментов.
Давно не писал про Ubuntu — не было повода, но недавно он появился. Мне не удалось скопировать на флешку файлы, о чем система радостно сообщала — «Файловая система доступна только для чтения».
Попытка выставить нужные права на файлы и каталоги не дала результатов и я пошел искать решение в интернете. Проблема оказалась распространенной и не раз обсуждалась. Несмотря на это, нужную команду я нашел не сразу.
Команду необходимо выполнить в терминале, вызвать который можно одновременным нажатием трёх клавиш — «Alt+Ctrl+T». Недоступность файловой системы была вызвана сбоем при копировании на флешку в прошлый раз. Возникли битые сектора, исправив которые, файловая система снова стала доступна для записи.
«sdb1» — идентификатор usb-накопителя в системе. Если у Вас два жестких диска, то он может отличаться от указанного. Выяснить его идентификатор можно командой:
Эта команда выведет список подключенных дисков.
Подскажите как решить проблему, файл текстовый копирую на флешку, но скопировать не удается, появляется окно:
«Операция над файлами была завершена с ошибками.
Копирование файлов report.txt
В: /media/usb0… „
Файл не копируется.
Права доступа к файлу проверил, можно читать и писать r/w
Проблема явно в том, как Ubuntu работает с флешками (флешь исправна, проверено, все флешки так себя ведут на этой машине).
п.с. При подключении флешки к компьютеру, не появляется окно с предложение примонтировать флешь или открыть в файловом менеджере.
На другом компьютере при подключении флешь появляется окно.
Подскажите как получить информацию о флешке, а именно о правах доступа.
Файл с флешки можно скопировать на диск Ubuntu
Предполагаю проблема с правами.
Что из команд проверено:
sudo fdisk -l
множество сайтов облазил, но так ничего не понял.
та же ошибка но с самим телефоном.
было дело копировал сериальчик на внутреннюю память телефона (samsung galaxy s 2 i9100 телефончик рутированый, рутировал примерно года 1,5 назад-работал нормально без сбоев) во время копирования случайно выдернул usb шнур.
при повторном подключении ничего не заметил, с телефона все спокойно скидывается на пк а на тел с пк ни в какую. файлы на внутренней памяти и на флешке не возможно удалить через пк и менеджер файлов в телефоне, даже скриншоты не сохраняются. телефон перешел в режим только чтение.
помогите решить проблемку.
ps. root explorer только смог перемонтировать файловую систему для чтения и записи но только на момент удаления любого файла.
pss. вот я и подумал раз root explorer смог перемонтировать файловую систему и для чтения и для записи (хоть и временно) вот у меня и загорелась надежна что не все потеряно.
НАДЕЮСЬ ЧТО МНЕ ТУТ ПОМОГУТ.
На форуме 4pda напиши, там много спецов по телефонам и их проблемам. С андроидом поверхностно знаком, тонкостей работы не знаю.
Я пытаюсь скопировать файл 6 ГБ на флэш-накопитель USB, но он не будет копироваться.
Это связано с ограничением FAT32. Файлы размером более 4 ГБ не могут быть сохранены на томе FAT32. Форматирование флешки как exFAT или NTFS решит эту проблему.
ВНИМАНИЕ: Резервное копирование ваших данных. Форматирование удалит все данные на вашем устройстве.
Если вы не хотите переформатировать USB-накопитель или вам нужен FAT32, вы можете просто разбить большой файл на части. Большинство менеджеров архивов поставляются с опцией split, а для командной строки split Например, для вашего случая:
Увидеть man split для полной документации. Это создаст следующие файлы:
Размер файла output.file.aa точно соответствует максимальному размеру файла вашего USB-накопителя в формате FAT32, который составляет 4 гибибайта (ГиБ, это не то же самое, что гигабайт ГБ) минус 1 байт.
Спасибо Gilles за это важное дополнение.
Прежде чем вы снова сможете получить доступ к файлу, вам нужно сначала объединить его части. В системах Linux вы можете сделать это с:
Если вы боитесь, что это может привести к неправильной сортировке файлов в Bash, гарантированно ли будут использоваться расширения с подстановочными знаками?
Соответствующая команда в системах Windows:
Наряду со многими другими полезными утилитами GNU split может быть установлен и в Windows, см. утилиты GNU для Win32.
Что такое SCP?
Команда scp - это утилита, которая работает по протоколу SSH, а значит, все что вам нужно для передачи файла на компьютер, это чтобы на нем был запущен SSH сервер, а также вы должны знать логин и пароль для подключения к нему. С помощью команды scp вы можете не только перемещать файлы между локальной и удаленной системой, но и между двумя удаленными системами. Для этого тоже будет достаточно знать пароли от них. И в отличие от Rsync вам не нужно авторизоваться на одном из серверов.
Полная совместимость с Linux, Windows и MacOS
У Windows проблемы с файловыми системами Linux, и я думаю, что у MacOS есть проблемы как с файловыми системами Linux, так и с NTFS. Поэтому, если вы хотите "полную совместимость" для чтения и записи, остаются только FAT32, UDF и exFAT.
FAT32 имеет ограничение в 4 ГБ (гибибайт, база 2) для размера файла.
- Может быть создан во всех трех операционных системах.
- Поддерживать (восстанавливать) в Windows, если у вас есть доступ к Windows.
Может поддерживаться в Ubuntu с dosfsck , который идет с пакетом dosfstools ,
где x - буква диска, а n - номер раздела, например /dev/sdb1 для первого раздела в диске б.
UDF, вероятно, не хватает инструментов для восстановления файловой системы,
- FOSS
- Может быть, можно найти инструменты восстановления в Windows по этой ссылке: fsck tools for UDF, и есть некоторый инструмент, доступный в виде исходного кода
- Может быть создан в Ubuntu
- Совместим со ссылками в стиле Linux.
- Совместим с разрешениями в стиле Linux. Вы можете создавать и изменять разрешения для отдельных файлов (что невозможно в FAT и NTFS).
- Раздел 10 UDF не будет запрошен для форматирования в Windows 10 (в то время как файловая система linux ext4 затронута и может быть уничтожена по ошибке).
Итак, чтобы использовать его, предполагая, что ваша флешка /dev/sdx :
Установить пакет udftools
Создать таблицу разделов и один раздел с gparted или же gnome-disks
Протрите первый мибибайт целевого раздела рискованным dd (перепроверьте командную строку!)
Протрите первый мибибайт раздела, чтобы стереть информацию о предыдущей файловой системе (или другие оставшиеся данные), чтобы предотвратить обнаружение USB-флешки как FAT после того, как она была отформатирована с помощью UDF.
-b 512 принудительно устанавливает размер блока файловой системы, равный размеру физического блока USB-накопителя, как того требует спецификация UDF. Адаптируйте его, если вам повезет с USB-накопителем с более подходящим размером блока.
После этого ваш USB-накопитель будет пригоден для чтения и записи с GNU/Linux и другими бесплатными операционными системами, но также с текущими версиями Windows (только для чтения с устаревшей версией XP) и с MacOS.
exFAT это еще один вариант. Это новый по сравнению с FAT32 и UDF и заявлено, чтобы работать хорошо
- изначально с Windows
- с MacOS
- с Linux
Выводы
Теперь вы знаете, как выполняется копирование файлов Ubuntu и в Linux в целом. Как видите, в терминале это выполняется намного быстрее и эффективнее, чем с помощью графического интерфейса, если помнить нужные команды. Если у вас остались вопросы, спрашивайте в комментариях!
Оптические диски после появления USB флешек и постепенным снижением их стоимости, с каждым годом теряют свою популярность. Но все же еще иногда используются. Например, для установки операционных систем, хранения сборников софта или просто записи mp3 или видеотреков для старых музыкальных центров.
В этой инструкции мы рассмотрим как записать на диск уже готовый образ, а также запись файлов на диск в Ubuntu. В Gnome и Ubuntu для записи дисков есть стандартная утилита - Brasero. Ее мы и будем использовать. В ubuntu 16.04 программа для записи дисков была удалена из поставки по умолчанию, но она все еще доступна в репозиториях.
Копирование содержимого файлов в Linux
Вы можете не только копировать сами файлы, но и управлять их содержимым. Например, склеить несколько файлов в один или разрезать файл на несколько частей. Утилита cat используется для вывода содержимого файла, в комбинации с операторами перенаправления вывода Bash вы можете выполнять копирование содержимого файла Linux в другой файл. Например:
cat файл1 > файл2
Если файл был не пустым, он будет перезаписан. Или мы можем склеить два отдельных файла в один:
cat файл1 файл2 > файл3
Специальное копирование файлов в Linux с помощью tar
Linux интересен тем, что позволяет выполнять одно и то же действие различными путями. Копирование в Linux тоже может быть выполнено не только с помощью cp. При переносе системных файлов в другой каталог, резервном копировании системных файлов и т.д. важно чтобы сохранились атрибуты, значения владельцев файлов и символические ссылки как они есть без какой-либо модификации.
tar cf - /var | ( cd /mnt/var && tar xvf - )
Здесь мы полностью копируем содержимое папки /var в папку /mnt/var. Так вы можете копировать папку Linux, причём абсолютно любую или даже целую операционную систему.
Запись образа на диск в Ubuntu
Если у вас уже есть готовый образ диска в формате ISO который нужно записать на реальный носитель, то просто откройте файловый менеджер, перейдите в папку с образом и откройте контекстное меню для файла образа:
В меню выберите пункт записать на диск, дальше откроется окно в котором нужно выбрать привод дисков:
Дальше остается выбрать параметры записи дисков ubuntu и дождаться ее завершения:
Запись образов на флешку выполняется еще проще. Например, чтобы записать Ubuntu на флешку, достаточно воспользоваться консольной утилитой dd или графической unetbootin.
Создание образов в терминале Ubuntu
Не обязательно использовать графические утилиты для создания образа диска из файлов. Я бы даже сказал, что проще сделать это в терминале.
mkisofs -V "volume_ID" -D -l -L -N -J -R -v -o cdrom.iso ~/директория_c_файлами
Давайте рассмотрим более подробно опции команды:
- -V - метка диска для Windows систем
- -D - Не использовать глубокое перераспределение каталогов, записывать их как есть.
- -l - Разрешить использование имен длиной 31 символ
- -L - Разрешить именам файлов ISO9660 начинаться с точки
- -N - Разрешить номера версий в именах файлов ISO9660
- -J - Использование стандарта имен Jollet для совместимости с Windows
- -R - Использование стандарта Rock Ridge, для сохранения флагов Unix
- -v - показать подробную информацию в процессе создания
- -o - имя файла для записи образа
Примеры копирования файлов в linux
Теперь, когда вы знаете основные опции, можно перейти к практике. Например, мы хотим скопировать некую картинку из домашней папки в подкаталог pictures:
cp ~/pic.jpg ~/pictures/
Или можем явно указать имя новой картинки:
cp ~/pic.jpg ~/pictures/wallpaper.jpg
Копирование папок осуществляется с помощью ключа -r:
cp -R ~/папка ~/Документы/
После выполнения этой команды копирования ~/папка будет скопирована в папку ~/Документы. Главное, не забывайте поставить слэш в конце выражения или использовать опцию -t. Иначе папка ~/документы будет перезаписана.
По умолчанию команда cp Linux перезаписывает существующие файлы или папки, но можно заставить утилиту спрашивать, нужно ли перезаписывать каждый файл, если вы не уверены в правильности составления команды:
cp -i ~/test ~/Documents/test
Есть и противоположная опция -n, означающая "никогда не перезаписывать существующие файлы".
Опция -u полезна в следующем случае: вы знаете или предполагаете, что в директории, куда копируется файл, есть старая его версия, тогда оператор -u выполнит замену на новую версию:
cp -u ~/test ~/Documents/test
Сp также поддерживает специальные символы замены * и ?. Например, следующая команда скопирует все файлы, начинающиеся на test:
cp ~/test* ~/Документы/
Если нужно применить более сложные регулярные выражения, придётся комбинировать утилиту cp с find или egrep.
В случае, если важно сохранить права доступа к файлу и его владельца, нужно использовать опцию -p:
cp -p ~/test* ~/Документы/
Для упрощения использования команды можно применять синтаксис фигурных скобок. Например, чтобы создать резервную копию файла, выполните:
Будет создан файл с таким же именем и расширением .bak
По умолчанию в cp не отображается прогресс копирования файла, что очень неудобно при работе с большими файлами, но его можно легко посмотреть с помощью утилиты cv.
Копирование файлов scp
Эта статья рассчитана в первую очередь на начинающих, поэтому я попытаюсь объяснять все как можно подробнее. Перед тем, как мы перейдем к практике, нужно рассмотреть общий синтаксис команды:
$ scp опции пользователь1@хост1 : файл пользователь2@хост2: файл
Опции утилиты больше касаются протокола SSH и настраивают общее ее поведение. Дальше следует адрес первого и второго файла. Каждый из них может быть расположен как на локальной, так и на удаленной машине. А теперь рассмотрим основные опции, которые могут нам понадобиться:
- -1 - использовать протокол SSH1;
- -2 - использовать протокол SSH2;
- -B - пакетный режим для передачи нескольких файлов;
- -C - включить сжатие;
- - l - установить ограничение скорости в кбит/сек;
- -o - задать нужную опцию SSH;
- -p - сохранять время модификации;
- -r - рекурсивное копирование директорий;
- -v - более подробный режим.
В качестве пользователя нужно использовать любого пользователя, который есть на сервере. Вместо IP вы можете также домен сервера. Только необходимо, чтобы у выбранного пользователя были права записи в указанную папку.
С помощью опции -r вы можете скопировать на удаленную машину целый каталог. Команда будет выглядеть вот так:
Убедитесь, что у исходного каталога нет косой черты, а у каталога назначения она должна обязательно быть. Немного изменив синтаксис с косой чертой можно передать все файлы из каталога на удаленный сервер:
Если поменять местами локальный путь и сервер, то вы сможете копировать файлы scp c удаленного сервера на локальный компьютер:
Таким же самым образом вы можете копирование файлов scp или папок с сервера:
Обратите внимание, что папка, в которую вы собираетесь копировать должна завершаться косой чертой, иначе папка, которую вы копируете запишется вместо той, в которую нужно скопировать.
Чтобы скачать файл scp из одного сервера на другой, просто необходимо указать данные аутентификации на каждом из них. Например, скопируем один файл:
Скопируем папку с того же удаленного сервера:
Только Linux
Если вы намереваетесь использовать диск только с Ubuntu (и другими дистрибутивами Linux), рекомендуется использовать файловую систему Linux, например, ext4. Таким образом, вы можете получить более высокую скорость чтения / записи (в зависимости от того, какой процесс является узким местом), и вы получите более высокую гибкость в отношении владения и разрешений.
- Вы можете использовать программу с графическим интерфейсом gparted создать файловую систему ext4.
Запись образов дисков в терминале Ubuntu
Если вы по каким-либо причинам не хотите использовать утилиту Brasero все действия достаточно легко сделать вручную через терминал, поскольку эта утилита является только оболочкой для консольных команд mkisofs и cdrecord.
Если вы собираетесь записать образ на диск ubuntu DVD-RW/CD-RW необходимо сначала его очистить:
cdrecord -dev=/dev/cdrom -v blank=fast
Здесь и ниже /dev/cdrom - адрес файла вашего привода, может еще называться /dev/sr0.
cdrecord -dev=/dev/cdrom -speed=16 -eject -v cdrom.iso
cdrom.iso - это файл образа, 16 - скорость записи, а опция -eject - заставляет извлечь диск из привода после записи. Можно указывать скорость 4, 8 и 16. Желательно выбирать минимальную скорость, так диск запишется более качественно.
Подробнее о exFAT
Я начал тестировать exFAT в Ubuntu. Я намереваюсь отредактировать этот ответ, когда у меня будет больше опыта его использования. Давайте начнем со следующих ссылок,
ExFAT - это проприетарная файловая система Microsoft, оптимизированная для
встроенные системы, потому что она легкая и лучше подходит для решений с низким объемом памяти и низким энергопотреблением, а также может быть реализована во встроенном программном обеспечении.
и эта командная строка для установки поддержки [чтение / запись] для exFAT в Ubuntu
Может быть создан в Windows и MacOS и в Linux с помощью следующей командной строки
где x это буква диска и i например, номер раздела /dev/sdb1 ,
Может поддерживаться в Windows.
Мои первые результаты теста:
- Создание файловой системы exFAT хорошо работало в Ubuntu (16.04 LTS (64-bit), установленная система с ядром серии Xenial (4.4.0-93-generic), на сегодняшний день).
- Запись и чтение файла размером более 4 ГиБ были успешными. Ubuntu и exFAT работали правильно и быстро (я проверил с md5sum и скорость была ограничена системой USB).
- Ubuntu и Windows могли читать то, что было создано в другой операционной системе. (У меня нет MacOS для тестирования, и мне приходится полагаться на отчеты других людей.)
Выводы
Вот и все, теперь запись дисков в Ubuntu не вызовет у вас проблем. Если у вас остались вопросы, спрашивайте в комментариях!
Утилита копирования файлов cp
Название утилиты cp - это сокращение от Copy, что означает копировать. Утилита позволяет полностью копировать файлы и директории.
Читайте также: