Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Копирование и запись данных




Umount -a

Если файловая система занята (открыты ее каталоги, запущены исполняемые файлы, открыты обычные файлы и др.), ее демонтировать невозможно – система сообщит об ошибке. Выяснить, какой процесс использует файловую систему, можно с помощью команды lsof +D <dir> (следует указать нужную точку монтирования).

Нельзя извлекать носители из приводов или отключать/отстыковывать съёмные устройства, если не предусмотрено механической блокировки процесса извлечения, до окончания процесса размонтирования. В зависимости от состояния, в котором находился процесс ввода/вывода файловой системы извлекаемого/отключаемого устройства, будет зависеть целостность данных этой файловой системы.

В случае, если пользователи имеют права доступа на чтение к соответствующим устройствам, то запрет на монтирование, предусмотренный в конфигурационном файле /etc/fstab, еще не гарантирует, что пользователи не сумеют использовать устройства для блочного копирования. Ни в каком монтировании подобные действия не нуждаются.

Копирование является неотъемлемым свойством информации и связано с ее переносом на иные физические носители или в их пределах без изменения содержания. Следует различать копирование файлов, посекторное копирование носителя информации с одного на другой, посекторное копирование носителя информации в файл и обратный процесс. Можно выделить побитовое копирование (клонирование) носителя информации на другой носитель или в файл. Например, при проведении некоторых компьютерно-технических экспертиз требуется создать точную копию исследуемого устройства памяти в целях сохранения доказательства противоправной деятельности; при этом носитель-копия должен в точности соответствовать оригиналу, включая физическую геометрию исправных и поврежденных секторов.

Наиболее распространенный вид копирования – это создание еще одного экземпляра файла. Файл можно скопировать в тот же каталог, где расположен оригинал, но необходимо изменить имя копии. Можно скопировать файл с прежним именем, но только в другой каталог. Варианты команды cp для указанных случаев были приведены выше. Для копирования файла или группы файлов надо иметь следующие права:

· на чтение каждого файла-оригинала,

· на чтение и исполнение каталога, в котором исходные файлы хранятся,

· на запись и исполнение в каталоге, куда предстоит записать копии.

Если имя копируемого файла известно и он доступен для чтения, его можно скопировать, имея лишь право на поиск (исполнение) в каталоге, где он находится. Возникает вопрос: достаточно ли права на поиск в каталоге, если из него копируется группа файлов, имена которых заданы по маске, в т. ч. с использованием символов «*» и «?». Ответ отрицательный: для копирования файла с неопределенным именем его имя следует установить, для чего необходимо прочитать файловые записи в каталоге и сопоставить их с маской. Такое копирование требует наличия прав на чтение и исполнение для каталога.

Уместно отметить различия между жесткой ссылкой и копией файла, а также между копией и оригиналом. Жесткая ссылка – это еще одно имя файла, указывающее на единственный индексный дескриптор. При копировании создается другой файл, имеющий не только отдельную запись в каталоге, но и свой уникальный индексный дескриптор, а также занимающий иные блоки на дисковом пространстве. Файл-копия может отличаться от оригинала правами доступа и обновленными временными отметками, а также владельцем файла, если копирование производилось другим пользователем. Одинаковым для файла-оригинала и его копии является только содержимое блоков данных.

Если на месте расположения копии уже существует файл с таким же именем, он обнуляется (точнее, его блоки данных объявляются свободными), а индексный дескриптор передается создаваемой копии. При копировании права доступа (код режима) файла не изменяются, за исключением сброса флагов эффективных идентификаторов SUID и SGID. Системная функция, записывающая копию файла, обнуляет биты эффективных прав доступа. Владелец копии и его группа меняются – ими становятся пользователь, копирующий файл и его группа. После копирования пользователь может сделать со своим экземпляром файла всё, что ему заблагорассудится. Обычные пользователи имеют права на чтение в каталогах /bin, /sbin, /usr/bin, /usr/sbin и в принципе могут обзавестись своими копиями различных утилит. Сами по себе копии утилит опасности не вызывают, так как пользователь сможет запустить их только со своими правами.

Обычное файловое копирование производится с помощью уже упомянутой выше утилиты cp. С ее помощью можно скопировать один или группу файлов из одного каталога в другой. Имеется возможность копирования каталогов, в том числе и рекурсивного.

Резервное копирование является одной из распространённых мер защиты данных. От обычного копирования оно отличается тем, что пункт назначения находится на другом машинном носителе, возможно находящемся в составе другого компьютера. Резервному копированию и его политике уделяется довольно много внимания в различных источниках, посвященных администрированию систем. Для резервного копирования файлов и каталогов в ОС Linux используется несколько известных утилит, которые появились задолго до её появления.

При одинаковом объеме копируемых данных процесс файлового копирования происходит быстрее при большом размере файлов. В идеале следует копировать один большой файл. Для сборки файлов каталога в один непрерывный массив в Linux существует утилита tar (от T ape Ar chive – ленточный архив). Команда сборки выглядит так:

tar –cf backup.tar <dir>

С помощью утилиты tar можно группировать в один файл содержимое нескольких каталогов, отделяя их в командной строке пробелами, например:

tar –cf backup.tar /home /etc

Файлы копируются с указанием их полного имени, поэтому распаковка должна производиться из корневого каталога

tar –xf backup.tar <dir>

«Зеркальным» называют файловое копирование, при котором группа файлов копируется в другой каталог с сохранением всех файловых атрибутов в копиях. Подобное можно выполнить с помощью одной из команд

rsync –a <dir1> <dir2>

или

cp –a <dir1>/* <dir2>

При копировании каталогов с помощью утилиты rsync следует иметь в виду одно обстоятельство. Если исходный каталог завершается символом /, например /home/user1/, то копируется содержимое каталога, но не сам каталог. Для копирования каталога со всем его содержимым его имя следует задавать без завершающего символа /, например /home/user1.

Если некоторые файлы из исходного каталога уже удалены, утилита rsync по умолчанию не удаляет их в пункте назначения. Для полной синхронизации файлов требуется задать в командной строке атрибут –delete.

Для выполнения резервного копирования дисковых разделов используется утилита dump, однако в дистрибутивах ОС Linux она не является штатной и может отсутствовать. С помощью этой утилиты можно производить полное или выборочное (дополняющее) копирование. Для копирования нулевого уровня (так называется полное резервное копирование) используется команда

dump –O –u –f /dev/tape /home

/dev/tape – так обычно обозначается псевдоним (символическая ссылка) специального файла ленточного устройства. Далее предполагается, что домашние каталоги пользователей размещаются на отдельном логическом разделе, примонтированном к каталогу /home. При этом в конфигурационном файле /etc/fstab строка с /home в поле для резервного копирования должна содержать единицу; без нее утилита dump откажется работать.

Не рекомендуется производить резервное копирование разделов, которые в данный момент примонтированы к корневой файловой системе; их следует временно демонтировать.

Как уже отмечалось выше, файлам, которые не следует резервировать, с помощью утилиты chattr может присваиваться дополнительный атрибут d. Утилита dump игнорирует файлы с подобной меткой.

Файловому копированию свойственно несколько недостатков. Во-первых, в некоторых случаях оно ведет к изменению временных отметок файлов, а также их владельцев. Файлы-источники как минимум меняют время последнего доступа, а файлы-копии обновляют три временных отметки. Во–вторых, при копировании данных на носитель с иной файловой системой не дублируются некоторые специфические для исходной файловой системы метаданные файлов. Наконец, не копируются каталоги, которые на момент копирования могли быть закрыты примонтированными разделами. Эти обстоятельства совершенно неприемлемы в случаях, когда необходимо получить юридически достоверную копию и исключить какие-либо изменения в источнике копирования. Для решения таких задач может подойти утилита dd. Этоуниверсальная утилита для блочного (с изменяемым размером блока) копирования файлов. По той причине, что в ОС Linux диски и разделы представлены в виде файлов, можно утверждать, что она будет работать и с ними. Копирование дисковых разделов не нуждается в их монтировании, но при этом они не должны быть смонтированными и использоваться.

dd if=<источник> of=<приемник> bs=<размер_блока> seek= <число_блоков> skip=<число_блоков> count=<число_блоков> conv=noerror,fsync

if=<источник> – файл, откуда копируются данные. Если источник не указан, копируются данные из стандартного ввода stdin, в случае интерактивной работы – введенные с клавиатуры. Поток данных может передаваться команде dd из другой программы через конвейер; в этом случае параметр if= не указывается, так как используется ввод из stdin.

of=<приемник> – файл, в который записываются данные. В случае отсутствия адресуемого файла в файловой системе он будет создан. Если параметр of= не указан, данные выводятся в стандартный вывод stdout или на экран. В случае отсутствия параметра of= вывод утилиты через конвейер можно перенаправить другой программе.

bs=<размер_блока> –размерблока копируемых данных, который по умолчанию равен 512 байтов. Максимальная скорость копирования обеспечивается при размере блока 4096 байтов (4 Кб), что равно одной странице виртуальной памяти. Минимальный размер копируемого блока можно указать равным одному байту, но реальный размер считываемого блока все равно не может быть меньше величины одного сектора на диске. Размер блока может задаваться раздельно для источника (ibs – input block size) и для приемника (obs – output block size). Если копируемые блоки одинаковы, то задается величина bs. Размер может задаваться в байтах (единица измерения не указывается), килобайтах (К), мегабайтах (М), гигабайтах (G).

skip=<число_блоков> –количество (десятичное число) пропущенных при копирования из источника блоков указанного размера.

seek=<число_блоков> –количество пропущенных приемником блоков.

count=<число_блоков> –количество копируемых блоков указанного размера.

conv=noerror,fsync –режим обработки ошибок, при котором блок, скопированный с ошибкой контрольной суммы в приемнике, заполняется нулями, а процесс копирования не прерывается. При отсутствии этого параметра копирование завершается после первой ошибки чтения. Аргумент fsync служит для того, чтобы скопированные данные не «застревали» в дисковом кэше, а сразу записывались на диск.

Этим не исчерпываются возможности этой великолепной утилиты. Она может использоваться для просмотра элементов архитектуры файло-


вых систем вместо дискового редактора. С помощью dd можно также вставлять данные в нужные места адресуемой памяти. Варианты использования утилиты:

· для создания файл-образа гибкого магнитного диска

dd if=/dev/fd0 of=/tmp/floppy conv=noerror

· для создания файл-образа компакт–диска

dd if=/dev/hdc of=/tmp/cdrom1 conv=noerror

· для создания файл-образа 7-го раздела жесткого магнитного диска с IDE-интерфейсом

dd if=/dev/hda7 of=/tmp/hd7 bs=4k conv=noerror,fsync

· для записи произвольной строки на гибкий магнитный диск, например, в качестве дополнительной метки носителя

echo 1234567890|dd of=/dev/fd0 bs=1 seek=10 count=10

· для вывода на экран для просмотра содержимого первого сектора жесткого магнитного диска, который является главной загрузочной записью (MBR)

dd if=/dev/hda bs=512 count=1|xxd|more

· для вывода на экран для просмотра дампа описателя 6-й группы блоков файловой системы ext2fs

dd if=/dev/hda6 bs=4096 skip=1 count=1|dd bs=32 skip=5 count=1|xxd

· для вывода на экран для просмотра дампа 11-го индексного дескриптора файловой системы ext2fs

dd if=/dev/hda6 bs=4096 skip=4 count=1|dd bs=128 skip=10 count=1|xxd

Одним из недостатков утилиты dd является отсутствие информирования пользователя о процессе ее работы. Когда речь идет о копировании физических дисков или логических разделов большого размера, подобная неизвестность действует угнетающе. В руководстве по использованию утилиты предлагается из другой консоли периодически выдавать команду вида




Поделиться с друзьями:


Дата добавления: 2015-03-31; Просмотров: 592; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.024 сек.