вторник, 23 января 2018 г.

Монтирование iso или raw диска





Если у Вас простой raw-образ, то используя losetup и mount, можно как-то так:
Код
[root@aliCD images]# losetup  /dev/loop1 CentOS.img
[root@aliCD images]# fdisk -lu /dev/loop1

Диск /dev/loop1: 4294 МБ, 4294967296 байт
255 heads, 63 sectors/track, 522 cylinders, всего 8388608 секторов
Units = секторы of 1 * 512 = 512 bytes
Disk identifier: 0x0008442d

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/loop1p1   *          63     8385929     4192933+  83  Linux
[root@aliCD images]#
[root@aliCD images]# mount -t ext3 -o loop,offset=32256 /dev/loop1 /home/ali/Loop/

Зачем же такой огород-то, -o loop создаст ещё одно loop-устройство, это абсолютно излишне.
Вместо этого нужно проще делать:
Код
# losetup -o 32256 /dev/loop1 CentOS.img
# mount -t ext3  /dev/loop1 /home/ali/Loop/

 

 

Mounting a raw partition file made with dd or dd_rescue in Linux


This situation might not affect everyone, but it struck me today and left me scratching my head. Consider a situation where you need to clone one drive to another with dd or when a hard drive is failing badly and you use dd_rescue to salvage whatever data you can.
Let’s say you cloned data from a drive using something like this:
Once that’s finished, you should end up with your partition table as well as the grub data from the MBR in your image file. If you run file against the image file you made, you should see something like this:
What if you want to pull some files from this image without writing it out to another disk? Mounting it like a loop file isn’t going to work:
The key is to mount the file with an offset specified. In the output from file, there is a particular portion of the output that will help you:
This means that the filesystem itself starts on sector 63. You can also view this with fdisk -l:
Since we need to scoot 63 sectors ahead, and each sector is 512 bytes long, we need to use an offset of 32,256 bytes. Fire up the mount command and you’ll be on your way:
If you made this image under duress (due to a failing drive or other emergency), you might have to check and repair the filesystem first. Doing that is easy if you make a loop device:
Once that’s complete, you can save some time and mount the loop device directly:

Rsync



Статья о программе для синхронизации файлов и каталогов Rsync
Rsync это программа для синхронизации файлов и каталогов с минимизацией трафика.
Rsync может быть запущен в режиме сервера для организации передачи файлов клиентам через порт и в режиме консольной файловой команды.
Порт используемый RSYNC-сервером по умолчанию TCP/873.
Сайт проекта rsync.samba.org

Установка

Пакет присутствует в хранилище пакетов debian.
Для установки пакета
После установки пакет готов к использованию.
Некоторые часто используемые команды
  # rsync --daemon                         - запуск rsync-сервера вручную с файлом конфигурации по умолчанию /etc/rsyncd.conf
  # /etc/init.d/rsync restart              - перезапуск rsync-сервера (при настройке запуска в режим демона)
  # rsync [options] /source/ /target/      - выполнение синхронизации содержимого каталога target из каталога source

Настройка RSYNC-сервера

RSYNC-сервер позволяет организовать передачу файлов клиентам через откраиваемый программой порт.
RSYNC-сервер может быть запущен вручную или автоматически при старте операционной среды.
Для запуска RSYNC-сервера вручную с произвольным файлом конфигурации может быть использована команда
  # rsync --daemon --config=FILE
Для включения автозапуска сервера Rsync следует
  • в файл /etc/default/rsync добавить параметры
  RSYNC_ENABLE=true
     где переменная RSYNC_ENABLE может принимать значения:
        false - запретить запуск сервера rsync,
        true  - запускать самостоятельный сервер rsync
        inetd - запускать сервер rsync при необходимости из супер-сервера inetd.
  RSYNC_CONFIG_FILE=/etc/rsyncd.conf
     если параметр не указан файл конфигурации будет считываться из /etc/rsyncd.conf,
     кроме тех случаев, когда rsync запускается поверх удаленной оболочки и не от
     суперпользователя. В этом случае выбирается rsyncd.conf из текущего каталога
     на удаленной машине (обычно $HOME).
  RSYNC_OPTS=opts
     добавление особенных (отличных от устанавливаемых по умолчанию) параметров запуска
     например, может быть указан адрес и/или порт, на котором следует принимать соединения
     "--address=192.168.0.10" (по умолчанию - все локальные адреса)
     "--port=8730" (по умолчанию - 873), чтобы указать на каком порту следует принимать соединения
  RSYNC_NICE=level
     изменение приоритета процесса в планировщике задач
  • и перезапустить rsync-сервер.
В файле конфигурации rsyncd.conf могут быть использованы параметры
  uid = rsyncd
        Идентификатор пользователя, от имени которого запускается rsync-сервер.
  gid = mirror
        Идентификатор группы, от имени которой запускается rsync-сервер.
  max connections = 50
        Максимальное количество одновременных подключений.
  read only = yes
        Установка доступа к ресурсам "только чтение".
  list = yes
        Установка разрешения клиентам получать список файлов.
        Если запретить просмотр списка файлов, то клиенты смогут получить файл только зная его точное имя,
  syslog facility = local5
        Установка уровня отладочных сообщений для syslog.
  dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz *.rar *.mp3
        Установка шаблонов имён файлов, содержимое которых не нужно сжимать при передаче. 
  use chroot = yes
        Установка изменения корневого каталог rsync-сервера на указанный в path.
        Изменение каталога может использоваться для повышения безопасности.
  outgoing chmod = Fu=rw,g=rw,o=,Du=rwx,g=rx,o=
        Установка права доступа к отдаваемым файлам.
        Поскольку протокол rsync позволяет вместе с содержимым файлов передавать права доступа к ним и идентификаторы
        владельца и группы, можно задать особые права доступа, которые будут заменять реальные права доступа к данному
        файлу или каталогу при его передаче по сети.
  [media]
        В квадратных скобках задаётся имя секции.
        Каждая секция обязана иметь собственный параметр path.
        Дополнительно в ней могут быть переопределены и значения глобальных параметров.
     path = /media/
     comment = media files
  Пример файла конфигурации /etc/rsyncd.conf
  syslog facility=daemon                  - стартовать в режиме демона 
  pid file=/var/run/rsyncd.pid            - с сохранением идентификатора процесса в файле /var/run/rsyncd.pid
  motd file = /etc/rsync/hello            - отвечать клиенту в начале сессии приветствием из файла /etc/rsync/hello.
  transfer logging = yes
  log file = /var/log/rsyncd.log          - вести протокол переданных клиенту файлов в /var/log/rsyncd.log
  log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes - по заданному формату
  [root]
     comment = rsync open for root        - предоставлен доступ
     uid = root                           - от имени пользователя root
     gid = root                           - и группы root
     path = /                             - с доступом к корневому каталогу в терминах rsync-сервера
     list = yes                           - с возможностью его просмотра списка файлов
     read only = yes                      - но только для чтения
     hosts allow = hosts-name             - и только с рабочей станции hosts-name (из /etc/hosts)
     hosts deny = 0.0.0.0/0.0.0.0
     dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz   - не сжимая при передаче файлы указанных расширений
     exclude from = /etc/rsync/rsyncd-exclude     - и исключая файлы описанные в файле /etc/rsync/exclude 
Ссылки

Использование команды rsync

Синтаксис команды
  # rsync [параметры] <откуда> <куда>
  где
  <откуда> и <куда>   - источник и целевой объект
     Объектами копирования могут быть как файлы, так и папки, находящиеся как в пределах файловой
     системы, так и удалённо, например на SSH или RSYNC-сервере.
  [параметры]         - необязательные параметры копирования/синхронизации, например
     -v, --verbose
        повышение детализации при копировании, например показывать название файлов
     -a, --archive
        режим архивации, объединяет несколько ключей -rlptgoD
     -r, --recursive
        копирование рекурсивно. просматривая все вложенные файлы и каталоги
     -l, --links
        сохранять символические ссылки
     -p, --perms
        сохранять права на файлы
     -t, --times
        сохранять время изменения файлов
     -g, --group
        сохранять группу файлов
     -o, --owner
        сохранять владельца файлов (работает только для суперпользователя)
     --devices
        сохранять файлы устройств (работает только для суперпользователя)
     --specials
        сохранять специальные файлы
     -D
        сохранять файлы устройств и специальны файлы, идентично --devices --specials
     -H, --hard-links
        сохранять жесткие ссылки
     -x, --one-file-system
        не выходить за пределы файловой системы
     -z, --compress
        сжимать файлы данных во время передачи
     --compress-level=NUM
        явное задание степени сжатия
     --skip-compress=LIST
        пропуск сжатия файлов с суффиксом LIST
     --progress
        показывать сколько процентов осталось до завершения и скорость передачи
     --numeric-ids
        не транслировать имена владельца и группы в цифровые UID и GID, оставить номера как есть
     --delete
        удалять файлы в приёмнике, которых уже нет в источнике
     --delete-before
        удалять файлы перед началом копирования
    --delete-during
        удалять файлы во время копирования
     --delete-delay
        удалять файлы после окончания копирования, но искать их во время
     --delete-after
        удалять файлы после окончания копирования
     --delete-excluded
        удалять файлы включая исключённые
     --exclude=PATTERN
        исключать копирование файлов соответствующие маске PATTERN
     --exclude-from=FILE
        получить маски исключаемых при копирование файлов из файла FILE
     --include=PATTERN
        не исключать копирование файлов соответствующие маске PATTERN
     --include-from=FILE
        получить маски неисключаемых при копирование файлов из файла FILE
     --files-from=FILE
        получить список копируемых файлов из файла FILE
     -e ssh
        использовать при копировании ssh
     -n, --dry-run
        пробный режим копирования без изменений
     --bwlimit=KBPS
        установка ограничения скорости передачи файлов
Примеры использования rsync-копирования
  Синхронизация данных с  RSYNC-сервера в целевую папку
  # rsync -rlpgoDvsH --delete root@IP-RSYNC-SERVER::<SOURCE_PATH>/ <DEST_PATH>/
    где
    -rlpgoDvsH                              - параметры копирования
    rroot@IP-RSYNC-SERVER::<SOURCE_PATH>/   - путь до источника данных в терминах rsync-сервера
    <DEST_PATH>                             - путь до папки назначения в терминах rsync-клиента
    --delete                                - команда "удалять файлы" в резервном архиве, если они удалены на rsync-сервере
  Синхронизация двух каталогов файловой системы
  # rsync -avsq --delete -b --backup-dir=<LOCAL_PATH>/modify --suffix=.`date +%Y-%m-%d` <SRC_PATH>/ <DEST_PATH>/
  где
  -avsq                   - параметры копирования
  <SRC_PATH>              - путь до каталога, подлежащего резервному копированию
  <DEST_PATH>             - путь до папки куда копируются данные
  -b --backup-dir=<LOCAL_PATH>/modify --suffix=.`date +%Y-%m-%d`
                          - команда сохранять файлы которые изменялись в каталоге
                            с присвоением расширения файлам даты резервного копирования
  Создание (только) структуры каталогов (без копирования файлов)
  # rsync -avH -f"+ */" -f"- *" <SRC_PATH>/ <DEST_PATH>/
  # rsync -avH --exclude="*.*"  <SRC_PATH>/ <DEST_PATH>/
  Копирование больших файлов на медленных и неустойчивых линиях
  # prg_rsync -avsH --partial --partial-dir="<PART_PATH/>" <SRC_PATH>/ <DEST_PATH>/
   где
   -avsH                        - параметры копирования
   <SRC_PATH>                   - путь до каталога, подлежащего резервному копированию
   <DEST_PATH>                  - путь до папки куда копируются данные
   ---partial                   - установка сохранения даже не полностью скопированных файлов
   --partial-dir="<PART_PATH/>" - путь до папки куда сохраняются не полностью скопированные файлы
   --append-verify              - установка проверки существующего файла для синхронизации лишь остатка не скопированного куска