Linux скопировать dvd диск
Копирование файлов - одна из задач, наиболее часто возникающих перед пользователями персонального компьютера. Конечно, можно открыть файловый менеджер, войти в нужную папку и скопировать файл с помощью контекстного меню - тут не о чем говорить. Но в этой статье я хотел бы рассмотреть копирование файлов в Linux с помощью терминала.
Не всегда есть доступ к файловому менеджеру: из-за различных поломок графическая оболочка на домашнем компьютере может быть недоступна, а на серверах используется только консольный интерфейс. К тому же копирование файлов Ubuntu через терминал намного эффективнее, и вы сами в этом убедитесь. Сегодня мы рассмотрим не только обычное копирование командой cp Linux, но и не совсем обычное: с помощью tar и find.
Запись образа на диск в Ubuntu
Если у вас уже есть готовый образ диска в формате ISO который нужно записать на реальный носитель, то просто откройте файловый менеджер, перейдите в папку с образом и откройте контекстное меню для файла образа:
В меню выберите пункт записать на диск, дальше откроется окно в котором нужно выбрать привод дисков:
Дальше остается выбрать параметры записи дисков ubuntu и дождаться ее завершения:
Запись образов на флешку выполняется еще проще. Например, чтобы записать Ubuntu на флешку, достаточно воспользоваться консольной утилитой dd или графической unetbootin.
Запись файлов на диск в Ubuntu
Здесь уже система немного другая, нельзя сразу взять несколько файлов и закинуть их на диск. Для того чтобы компьютер или другие приборы смогли правильно работать с файлами на диске нужно использовать файловую систему ISO9660. Это стандартная файловая система, она поддерживается как компьютерами с Winows и Linux, так и старыми музыкальными центрами и DVD проигрывателями. Поэтому сначала открываем меню Dash, вводим в поиске Brasero и запускаем ее:
В открывшимся окне создаем новый диск, выбираем Диск с данными:
Дальше с помощью кнопки со значком + добавляем файлы в проект. Это могут быть любые нужные файлы, например: музыка, фото, видео, документы и т д.
После того как добавите все нужные файлы, можете сохранить диск в виде образа или сразу же записать диск Ubuntu с помощью кнопки записать.
Дальше, как и в предыдущем примере, выбираем параметры записи и дождемся завершения.
Запись образов дисков в терминале 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. Желательно выбирать минимальную скорость, так диск запишется более качественно.
Примеры копирования файлов в 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.
Копирование файлов по регулярным выражениям в Linux
В утилите find можно применять различные условия и регулярные выражения для поиска файлов. Я уже немного писал о ней в статье как найти новые файлы в Linux. Мы можем скопировать все найденные с помощью find файлы, вызвав для каждого из них команду cp. Например, копируем все файлы в текущей директории, содержащие в имени только цифры:
find . -name 7 -exec cp <> ~/Документы \
Здесь точка указывает на текущую директорию, а параметр name задает регулярное выражение. Параметром exec мы задаем, какую команду нужно выполнить для обнаруженных файлов. Символ <> - подставляет имя каждого файла.
Но не find'ом единым такое делается. То же самое можно получить, запросив список файлов директории в ls, отфильтровав его по регулярному выражению egrep и передав имена файлов по очереди в cp с помощью xargs:
ls -1 ~/ | egrep '[a-zA-Z]' | xargs cp -t ~/Папка/
Это не совсем удобный способ копировать файлы Linux, но всё же он возможен. Будут скопированы все файлы из домашней директории, содержащие в имени только английские буквы.
Копирование содержимого файлов в Linux
Вы можете не только копировать сами файлы, но и управлять их содержимым. Например, склеить несколько файлов в один или разрезать файл на несколько частей. Утилита cat используется для вывода содержимого файла, в комбинации с операторами перенаправления вывода Bash вы можете выполнять копирование содержимого файла Linux в другой файл. Например:
cat файл1 > файл2
Если файл был не пустым, он будет перезаписан. Или мы можем склеить два отдельных файла в один:
cat файл1 файл2 > файл3
Синтаксис и опции
Общий синтаксис cp выглядит вот так:
$ cp опции файл-источник файл-приемник
$ cp опции файл-источник директория-приемник/
После выполнения команды файл-источник будет полностью перенесен в файл-приемник. Если в конце указан слэш, файл будет записан в заданную директорию с оригинальным именем.
Утилита имеет несколько интересных опций, которые могут сильно помочь при нестандартных задачах копирования, поэтому давайте их рассмотрим:
- --attributes-only - не копировать содержимое файла, а только флаги доступа и владельца;
- -f, --force - перезаписывать существующие файлы;
- -i, --interactive - спрашивать, нужно ли перезаписывать существующие файлы;
- -L - копировать не символические ссылки, а то, на что они указывают;
- -n - не перезаписывать существующие файлы;
- -P - не следовать символическим ссылкам;
- -r - копировать папку Linux рекурсивно;
- -s - не выполнять копирование файлов в Linux, а создавать символические ссылки;
- -u - скопировать файл, только если он был изменён;
- -x - не выходить за пределы этой файловой системы;
- -p - сохранять владельца, временные метки и флаги доступа при копировании;
- -t - считать файл-приемник директорией и копировать файл-источник в эту директорию.
Копирование CD/DVD дисков в файл-образ
Достаточно часто перед пользователями ОС Linux возникает задача копирования дисков CD или DVD в файл-образ для последующего копирования на другие физические носители информации или монтирования в операционной системе. С целью копирования удобнее всего использовать утилиту dd или одну из ее модификаций, которые по умолчанию входят в состав всех дистрибутивов Linux. Рассмотрим несколько вариантов использования утилиты dd. В ходе описания процесса копирования дисков будем предполагать, что используется ОС Linux Ubuntu, а физический CD/DVD диск уже находится в приводе CD/DVD.
Утилита dd. Простейший вариант использования.
Для копирования диска достаточно выполнить в терминале команду:
В результате работы утилиты в домашней директории пользователя будет создан файл-образ cdimage.iso, отвечающий стандарту ISO 9660, пригодный для использования во всех без исключения современных операционных системах, например, Linux, MacOS, Microsoft Windows. Время создания образа CD диска 700 Мб займет 2-4 минуты в зависимости от скорости привода CD/DVD. Указанный способ прост, но имеет один существенный недостаток — во время работы утилита «молчит», т.е. не выводит в терминал какую-либо информацию о ходе выполнения копирования. Два других способа лишены этого недостатка, но при этом требуют установки дополнительного программного обеспечения.
Совместное использование утилит dd и pv
Существует утилита pv — это сокращенно от pipeviewer, то есть просмотрщик пайпов. На описании эффективности использования пайпов останавливаться не будем — это общеизвестная информация. Единственное, «но» в работе с ними — это то, что набрав команду и нажав Enter часто не хватает самой малости — знать сколько времени займет ее выполнение.
Инсталлируем утилиту pv:
Для копирования диска выполним в терминале команду:
Результат работы этой команды тот же, что и в случае использования утилиты dd, но в ходе выполнения команды в стандартном выводе терминала будет выведена информация о ходе копирования.
Утилита dcfldd
Утилита dcfldd является модификацией утилиты dd. В нашем случае мы воспользуемся таким свойством утилиты dcfldd, как вывод информации в стандартный вывод терминала о ходе выполнения копирования. Итак, инсталлируем утилиту dcfldd:
Монтирование ISO-образов CD/DVD дисков
Предположим, что нам необходимо использовать информацию, содержащуюся на образе ISO диска CD/DVD и при этом по какой-то причине (например, нет чистого диска CD/DVD) мы не хотим или не можем скопировать образ диска на физический носитель — чистый диск CD/DVD. В таком случае возможно «смонитровать» файл-образ в виде виртуального носителя информации. Пусть требуется смонтировать образ диска cdimage.iso, который находится в домашней директории пользователя, т.е. образ ~/cdimage.iso. Сначала создадим директорию, в которую мы будем монтировать диск:
Далее монтируем образ ~/cdimage.iso в созданную директорию:
После выполнения последней команды содержимое образа CD/DVD диска появится в директории ~/isoimage. Также на рабочем столе появится ярлык виртуального CD/DVD носителя с требуемой информацией. Смонтированный виртуальный CD/DVD диск с точки зрения пользователя ничем не отличается от смонтированного CD/DVD в приводе физического диска. Для размонтирования смонтированного ISO-образа достаточно выполнить команду:
Люди пожалуйста подскажите как скопировать? создать образ DVD диска. Пробывал через k3b, но он почему-то копирует только 4096 метров - тоесть четыре гига и всё, дальше просто выключаеться. Может есть какие-то другие проги для копирывания?
dd if=/dev/ of=file.iso bs=65536
>почему-то копирует только 4096 метров
iso 9660. И вообще как правильно прописать дивидюк? Я его прописал как обыкновенный сидюк? только заменил /dev/cdrom на /dev/dvd.
>iso 9660 Да не на сидюке, а на харде где образ создаешь
И чего ты хочешь тогда добиться? ФАТ32 не поддерживает файлы большого объёма.
dd_rescue /dev/dvd /path/to/iso
А как же преобразовать файловую систему фат в ext2, ext3 без переформатирования раздела.
Говорят, что сотонинский инструмент типа Partition Magic такое умеет.
> инструмент типа Partition Magic
Это от лукавого!
> Говорят, что сотонинский инструмент типа Partition Magic такое умеет
Это, интересно, как? Это ж две принципиально разные файловые системы. Во всяком случае, PartitionMagic не может, проверил. Так что надо сделать backup и форматировать.
> Это от лукавого!
Был бы от Рогатого Батьки - работал бы на 200% надежно. А тут видать святым духом так все пропитано, что рядом стоять невозможно.
> Это, интересно, как? Это ж две принципиально разные файловые системы. Во всяком случае, PartitionMagic не может, проверил. Так что надо сделать backup и форматировать.
Ну я ж не сказал "100% гарантирую" - вообще последний раз грузил вендовые поделия много лет назад :) Бакап-то, понятное дело, всегда приводит к нужному результату - но юзеры так не любят даже мало-мальски напрягаться.
еще хрен знает сколько лет назад(больше 10 точно) были преобразовалки fat -> ext2 без потери данных, на древних линухах включались прямо в инсталяху, так что google тебе поможет
потом можно замечательно откопировать просто video_ts, и в последствии
залить на dvd, для gowisofs/mkisofs ключик -dvd-video Generate DVD-Video compliant UDF file system
Оптические диски после появления USB флешек и постепенным снижением их стоимости, с каждым годом теряют свою популярность. Но все же еще иногда используются. Например, для установки операционных систем, хранения сборников софта или просто записи mp3 или видеотреков для старых музыкальных центров.
В этой инструкции мы рассмотрим как записать на диск уже готовый образ, а также запись файлов на диск в Ubuntu. В Gnome и Ubuntu для записи дисков есть стандартная утилита - Brasero. Ее мы и будем использовать. В ubuntu 16.04 программа для записи дисков была удалена из поставки по умолчанию, но она все еще доступна в репозиториях.
Специальное копирование файлов в Linux с помощью tar
Linux интересен тем, что позволяет выполнять одно и то же действие различными путями. Копирование в Linux тоже может быть выполнено не только с помощью cp. При переносе системных файлов в другой каталог, резервном копировании системных файлов и т.д. важно чтобы сохранились атрибуты, значения владельцев файлов и символические ссылки как они есть без какой-либо модификации.
tar cf - /var | ( cd /mnt/var && tar xvf - )
Здесь мы полностью копируем содержимое папки /var в папку /mnt/var. Так вы можете копировать папку Linux, причём абсолютно любую или даже целую операционную систему.
Как работает команда dd?
Сначала нужно понять как работает команда dd и что она делает. Фактически, это аналог утилиты копирования файлов cp только для блочных данных. Утилита просто переносит по одному блоку данных указанного размера с одного места в другое. Поскольку в Linux все, в том числе, устройства, считается файлами, вы можете переносить устройства в файлы и наоборот.
С помощью различных опций утилиты можно повлиять на размер блока, а это, в свою очередь, уже влияет на скорость работы программы. Дальше мы рассмотрим основные опции утилиты и ее возможности.
Выводы
В этой статье мы рассмотрели как пользоваться dd linux, для чего можно применять эту утилиту и насколько она может быть полезной. Это почти незаменимый инструмент системного администратора, поскольку с помощью нее можно делать резервные копии целой системы. И теперь вы знаете как. Если у вас остались вопросы, спрашивайте в комментариях!
Команда dd
Синтаксис утилиты достаточно необычен, но в то же время очень прост, после того как вы его запомните и привыкнете:
$ dd if= источник_копирования of= место_назначения параметры
С помощью параметра if вам нужно указать источник, откуда будут копироваться блоки, это может быть устройство, например, /dev/sda или файл - disk.img. Дальше, с помощью параметра of необходимо задать устройство или файл назначения. Другие параметры имеют такой же синтаксис, как if и of.
Теперь давайте рассмотрим дополнительные параметры:
- bs - указывает сколько байт читать и записывать за один раз;
- cbs - сколько байт нужно записывать за один раз;
- count - скопировать указанное количество блоков, размер одного блока указывается в параметре bs;
- conv - применить фильтры к потоку данных;
- ibs - читать указанное количество байт за раз;
- obs - записывать указанное количество байт за раз;
- seek - пропустить указанное количество байт в начале устройства для чтения;
- skip - пропустить указанное количество байт в начале устройства вывода;
- status - указывает насколько подробным нужно сделать вывод;
- iflag, oflag - позволяет задать дополнительные флаги работы для устройства ввода и вывода, основные из них: nocache, nofollow.
Это были все основные опции, которые вам могут понадобиться. Теперь перейдем ближе к практике и рассмотрим несколько примеров как пользоваться утилитой dd linux.
Утилита копирования файлов cp
Название утилиты cp - это сокращение от Copy, что означает копировать. Утилита позволяет полностью копировать файлы и директории.
Выводы
Теперь вы знаете, как выполняется копирование файлов Ubuntu и в Linux в целом. Как видите, в терминале это выполняется намного быстрее и эффективнее, чем с помощью графического интерфейса, если помнить нужные команды. Если у вас остались вопросы, спрашивайте в комментариях!
Довольно часто системным администраторам приходится копировать различные двоичные данные. Например, иногда может понадобиться сделать резервную копию жесткого диска, создать пустой файл, заполненный нулями для организации пространства подкачки или другой виртуальной файловой системы.
Для решения всех этих задач используется утилита dd linux, которая просто выполняет копирование данных из одного места в другое на двоичном уровне. Она может скопировать CD/DVD диск, раздел на диске или даже целый жесткий диск. В этой статье мы рассмотрим что из себя представляет команда dd linux, основные ее опции и параметры, а также как ею пользоваться.
Как пользоваться dd?
Обычные пользователи используют команду dd чаще всего для создания образов дисков DVD или CD. Например, чтобы сохранить образ диска в файл можно использовать такую команду:
sudo dd if=/dev/sr0 of=~/CD.iso bs=2048 conv=noerror
Фильтр noerror позволяет отключить реагирование на ошибки. Дальше, вы можете создать образ жесткого диска или раздела на нем и сохранить этот образ на диск. Только смотрите не сохраните на тот же жесткий диск или раздел, чтобы не вызвать рекурсию:
dd if=/dev/sda of=~/disk.img
В вашей домашней папке будет создан файл с именем disk1.img, который в будущем можно будет развернуть и восстановить испорченную систему. Чтобы записать образ на жесткий диск или раздел достаточно поменять местами адреса устройств:
dd if=~/disk.img of=/dev/sda
Очень важная и полезная опция - это bs. Она позволяет очень сильно влиять на скорость работы утилиты. Этот параметр позволяет установить размер одного блока при передаче данных. Здесь нужно задать цифровое значение с одним из таких модификаторов формата:
Команда dd linux использует именно такую систему, она сложная, но от этого никуда не деться. Ее придется понять и запомнить. Например, 2b - это 1 килобайт, и 1k, это тоже 1 килобайт, 1М - 1 мегабайт. По умолчанию утилита использует размер блока - 512 байт. Например, чтобы ускорить копирование диска можно брать блоки размером по 5 мегабайт. Для этого применяется такая команда:
dd if=/dev/sda of=~/disk.img bs=5M
Следующий параметр - это count. С помощью него можно указать сколько блоков необходимо скопировать. Например, мы можем создать файл размером 512 мегабайт, заполнив его нулями из /dev/zero или случайными цифрами из /dev/random:
sudo dd if=/dev/zero of=file.img bs=1M count=512
Обратите внимание, что этот параметр указывает не размер в мегабайтах, а всего лишь количество блоков. Поэтому, если вы укажите размер блока 1b, то для создания файла размером 1Кб нужно взять только два блока. С помощью этого параметра также можно сделать резервную копию таблицы разделов MBR. Для этого скопируем в файл первые 512 байт жесткого диска:
sudo dd if=/dev/sda of=mbr.img bs=1b count=1
Для восстановления используйте обычную команду развертывания образа на диск.
dd if =/dev/sda2 | bzip2 disk.img.bz2
Также можно использовать утилиту dd linux для копирования файлов, хотя это и не является ее прямым предназначением:
dd if=/home/sergiy/test.txt of=/home/sergiy/test1.txt
Как вы знаете, команда dd linux пишет данные на диск непосредственно в двоичном виде, это значит, что записываются нули и единицы. Они переопределяют то, что было раньше размещено на устройстве для записи. Поэтому чтобы стереть диск вы можете просто забить его нулями из /dev/zero.
sudo dd if=/dev/zero of=/dev/sdb
Такое использование dd приводит к тому что весь диск будет полностью стерт.
Выводы
Вот и все, теперь запись дисков в Ubuntu не вызовет у вас проблем. Если у вас остались вопросы, спрашивайте в комментариях!
Создание образов в терминале 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 - имя файла для записи образа
Читайте также: