Other

Форматировать флеш,диски

Created Пятница 02 Сентябрь 2016

**********************

  1. Вставьте флешку в компьютер.

  2. Откройте терминал.

  3. Найдите USB-устройство, которое вы хотите отформатировать, с помощью команд:

$ df, lsblk, dmesg, dmesg | tail

Приведенные выше команды выведут список всех дисков и пути к ним.

4.Отмонтируйте диск с помощью команды: $ sudo umount /dev/sdb1

5.Запустить форматирование в файловую систему fat32:

$ sudo mkfs.vfat -n 'имя (метка) флеш' -I /dev/sdb1

просто без метки:

$ sudo mkfs.vfat /dev/sdb1 или $ sudo mkfs.vfat /dev/sdb1 -I

**********************

mkfs

Команда mkfs используется в Linux для создания файловой системы на устройстве, обычно на разделе диска. Аргумент device может задавать имя устройства (например /dev/sdb2), или имя файла, который может содержать файловую систему. Аргумент size - это количество блоков, используемое под файловую систему.

-----------------

mkfs --help

Использование:

mkfs [options] [-t <type>] [fs-options] <device> [<size>]

Make a Linux filesystem.

Опции:

-t, --type=<тип> тип файловой системы; если не указан, используется ext2

fs-options parameters for the real filesystem builder

<device> path to the device to be used

<size> number of blocks to be used on the device -V, --verbose explain what is being done;

specifying -V more than once will cause a dry-run -V, --version показать информацию о версии и выйти;

-V как --version должен быть единственным параметром -h, --help показать эту справку и выйти

-----------------

vfat

Форматирует файловую систему в FAT32, доступны также другие форматы:

mkfs.bfs, mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.minix, mkfs.msdos, mkfs.vfat, mkfs.xfs, mkfs.xiafs и так далее.

-n

Volume-name задает имя (метку) для файловой системы. Имя раздела может быть до 11 символов длиной. По умолчанию метка не создается. В моем случае имя раздела "Ubuntu".

-I

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

**********************

Колиснеченко <----PDF "Основы Администрирования" Гл.: 9.3.2

**********************

Ремонт --> http://rlab.ru/doc/repair_usb_flash_linux.html http://www.cgsecurity.org/wiki/TestDisk

http://www.linuxcenter.ru/lib/books/partitioning


dd - dataset definition

Created Friday 02 September 2016

dd (dataset definition) — программа UNIX, предназначенная как для копирования, так и для конвертации файлов. Название унаследовано от оператора DD (Dataset Definition) из языка JCL.

wikipedia.org/wiki/ DD

https://www.ibm.com/developerworks/ru/library/DD

http://liberatum.ru/exclusive/1-000-000-DD

Поскольку в UNIX очень многие объекты (жёсткие/гибкие диски, COM/LPT-порты, оперативная память компьютера, память с кодом/данными каждого процесса) представлены в виде специальных файлов, спектр применения утилиты dd гораздо шире, чем кажется на первый взгляд. Регулярно возникает необходимость не просто скопировать файл или несколько файлов (для чего предназначена утилита cp), а скопировать первые n байт файла, пропустить m байт от начала, прочитать файл с дефектного носителя, транслировать содержимое файла в ASCII, «развернуть» порядок байтов в файле (Little-Endian vs. Big-Endian), просто скопировать очень большой файл или все вместе взятое. Для этой цели и служит dd.

Кроме всего прочего, данная утилита позволяет скопировать регионы из файлов «сырых» устройств, например, сделать резервную копию загрузочного сектора жёсткого диска, или прочитать фиксированные блоки данных из специальных файлов, таких, как /dev/zero или /dev/random

Базовые параметры

У команды dd нет обязательных параметров, поэтому по умолчанию она копирует данные с устройства стандартного ввода на устройство стандартного вывода. Это говорит о том, что dd обладает свойствами фильтра, то есть, использоваться внутри конвейеров команд. Формат параметров представляет собой пару "имя_параметра=значение", например:

if=/имя/входного/файла или of=/имя/файла/результата. Большинство остальных параметров так или иначе осуществляют управление размерами и количеством блоков чтения и записи, что и составляет главную отличительную особенность утилиты dd.

$ dd if=источник_копирования of=место_назначения параметры

Параметр if указывает источник, откуда будут копироваться блоки, это может быть устройство, например, /dev/sda или файл - disk.img. Дальше, с помощью параметра of необходимо задать устройство или файл назначения. Другие параметры имеют такой же синтаксис, как if и of.

dd [--help] [--version] [status] [if=файл] [of=файл] [ibs=байты] [obs=байты] [bs=байты] [cbs=байты] [skip=блоки] [seek=блоки] [count=блоки] [conv={ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync}]

status=progress — отображает статистику передачи, возможны 3 варианта 'none', 'noxfer', 'progress' GNU Coreutils 8.24+ (Ubuntu 16.04 and newer) .

if=файл — читает данные из файла вместо стандартного ввода.

of=файл — пишет данные в файл вместо стандартного вывода.

bs=n — размер блока.

ibs=nn и obs=nn — задаёт, сколько байтов нужно считывать или записывать за раз.

count=n — сколько блоков скопировать.

seek=n — сколько блоков пропустить от начала в выходном файле перед копированием.

skip=n — сколько блоков пропустить от начала во входном файле перед копированием.

conv=фильтр,фильтр — применить фильтры конвертации. Типы фильтров:

ascii — сконвертировать в ASCII из EBCDIC…

ebcdic — …и наоборот.

block — выравнивание блоков.

lcase — преобразовать к нижнему регистру.

ucase — преобразовать к верхнему регистру.

swab — менять местами пары байт.

noerror — игнорировать ошибки ввода-вывода.

Очень важная и полезная опция - это bs. Она позволяет очень сильно влиять на скорость работы утилиты. Этот параметр позволяет установить размер одного блока при передаче данных. Здесь нужно задать цифровое значение с одним из таких модификаторов формата:

с - один символ;

b - 512 байт;

kB - 1000 байт;

K - 1024 байт;

MB - 1000 килобайт;

M - 1024 килобайт;

GB - 1000 мегабайт;

G - 1024 мегабайт.

Команда 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

Для восстановления используйте обычную команду развертывания образа на диск.

Если образ диска слишком большой, можно перенаправить весь вывод нестандартный поток вывода утилиты gzip:

$ 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 приводит к тому что весь диск будет полностью стерт.

Примеры использования: Работа с CD/DVD-дисками и образами

Создать образ CD/DVD, используя большой размер блока. Игнорировать ошибки: dd if=/dev/cdrom of=backup.iso bs=65536 conv=noerror

Записать ISO-образ «image.iso» на устройство sdb вместе с его загрузочным сектором и форматированием раздела в файловую систему образа (как правило, ISO 9660 или UDF)(создать загрузочную флеш - например): dd if=image.iso of=/dev/sdb

Работа с файлами

Скопировать файл foo в файл bar: dd if=foo of=bar

Скопировать файл foo в файл bar, пропустив первые 10 КБ из файла foo: dd if=foo of=bar bs=1k skip=10

Порезать 10-мегабайтный файл foo на 2 по 5 МБ: dd if=foo of=bar.0 bs=1M count=5 dd if=foo of=bar.1 bs=1M skip=5

Склеить четыре 100-мегабайтных файла в один:

dd if=SMILE.001 of=SMILE bs=1M seek=0 dd if=SMILE.002 of=SMILE bs=1M seek=100

dd if=SMILE.003 of=SMILE bs=1M seek=200

dd if=SMILE.004 of=SMILE bs=1M seek=300

а можно и так:

dd if=SMILE.001 > SMILE dd if=SMILE.002 >> SMILE

dd if=SMILE.003 >> SMILE

dd if=SMILE.004 >> SMILE

или же (для сбора файла из большого количества кусков):

for i in {1..4}; do dd if=SMILE.00$i >> SMILE

done

Примеры выше показывают возможности dd;

на практике, обычно, используется cat:

cat SMILE.00{1,2,3,4} >> SMILE

Вывести на экран (в /dev/stdout) первые 256 байт файла foo:

dd if=foo of=/dev/stdout bs=128 count=2 или:

dd if=foo bs=128 count=2

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

dd if=foo bs=1 count=10 2>/dev/null | hexdump

Команда создания файла подкачки

Введите следующую команду, чтобы создать файл подкачки на 2GB Ubuntu: dd if=/dev/zero of=/swapfile bs=1G count=2

Быстрое создание больших файлов

Иногда нужно быстро что-то проверить (например, создать большой файл). Вы можете сделать это так: dd of=bigfile count=0 bs=1M seek=8000

Эта команда мгновенно создаст большой файл размером 8000MB. Хитрость заключается в том, что это (файл с отверстиями), на самом деле он не занимает пространство. Вы можете увидеть, что пишет команда stat для этого файла, он должен сказать, что 0 блоков выделено для него. При чтении этого файла можно увидеть нули, вы можете также писать в нем. Реальный размер так же будет расти, если мы будем добавлять туда информацию. Не каждая файловая система позволяет создание пустых файлов, вполне возможно, что после выполнения этой команды система на самом деле запишет эти 8000MB нулей в файл, но популярные Linux файловые системы будут работать, как ожидалось.

Резервное копирование и удаление данных

В большинстве случаев следует быть внимательным, чтобы файл назначения не оказался на том же самом диске, с которого снимается образ.

Скопировать один раздел жёсткого диска на другой жёсткий диск, игнорируя ошибки ввода-вывода:

dd if=/dev/sda1 of=/dev/sdb2 bs=4096 conv=noerror,sync

Сделать копию главной загрузочной записи (MBR) первого жёсткого диска:

dd if=/dev/hda of=bootloader.mbr bs=512 count=1

Заполнить всё свободное место в текущем разделе нулями:

dd if=/dev/zero of=zerofill

Создать сжатый образ первого жёсткого диска со всеми разделами (рекомендуется сначала заполнить свободное место нулями для лучшего сжатия):

dd if=/dev/sda | xz -9 > MyFuBu.ISO.XZ

Просмотреть содержимое главной загрузочной записи (MBR) первого жёсткого диска:

dd if=/dev/sda bs=512 count=1 | hexdump -C

Копировать всё, кроме метки, с диска на магнитную ленту:

(dd bs=4k skip=1 count=0 && dd bs=512k) <$disk >$tape

Копировать всё, не перезаписывая метку, с магнитной ленты на диск:

(dd bs=4k seek=1 count=0 && dd bs=512k) <$tape >$disk

Уничтожить содержимое устройства /dev/sdb, заполнив его «нулями» из /dev/zero:

dd if=/dev/zero of=/dev/sdb bs=65536

Узнать статус выполнения операции:

killall -USR1 dd

В некоторых случаях статус выполнения просматривается командой:

pkill -USR1 -x dd

Тестирование производительности чтения / записи дисков

Возможно использовать dd чтобы увидеть, насколько быстро диск/файловая система пишет и читает данные

Эта команда создаст файл x.img размером 64Мб и покажет скорость и время записи time dd if=/dev/zero of=~/Desktop/myimage.img bs=1M count=64 conv=fdatasync

Результат:

$ time dd if=/dev/zero of=~/Desktop/myimage.img bs=1M count=64 conv=fdatasyn

64+0 записей получено

64+0 записей отправлено

67108864 байт (67 MB, 64 MiB) скопирован, 109,919 s, 611 kB/s

real 1m49,957s

user 0m0,010s

sys 0m0,667s

$ ls -l ~/Desktop/myimage.img

-rw-r--r-- 1 user user 64M Nov 12 14:54 /home/user/Desktop/myimage.img

$

Обратите внимание на conv=fdatasyn опцию, которая приводит к синхронизации данных с носителем, поэтому сочетание с командой time вы получите фактическое время записи 64 МБ на диск

Как следить за ходом работы команды dd?

Вариант 1

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

Установить pv и поместить его между входом/выходом команды dd

Из описания пакета:

pv (Pipe Viewer) это инструмент терминала на основе мониторинга прогресса данных через канал.

pv может быть вставлен в любой канал между двумя процессами, чтобы дать визуальную индикацию о том, как долго длится процесс и как близко к завершению.

sudo dd if=/home/vlad/Desktop/images/ubuntu.img | pv | sudo dd of=/dev/sdb

Результат:

45,12MB 0:00:15 [ 450kB/s] [ <=> ]

Вариант 2

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

Также, вы можете следить за ходом dd, используя команду kill

Чтобы увидеть прогресс работы dd, откройте другой терминал и введите:

kill -USR1 $(pgrep ^dd)

Если бы вы хотели получать регулярные обновления о прогрессе dd, то введите:

watch -n5 'sudo kill -USR1 $(pgrep ^dd)'

watch будет исследовать процесс dd каждые -n секунд (-n5 = 5 секунд) и выводить отчет без остановки.

Обратите внимание на правильные одиночные кавычки в команде выше!!!

==============================

Варианты dd, ориентированные на восстановление

Программы с открытым исходным кодом для восстановления включают dd_rescue и dd_rhelp, которые работают вместе, savehd7 и GNU ddrescue. (# apt-get install gddrescue)

Antonio Diaz Diaz (разработчик GNU ddrescue) сравнивает варианты dd для задач восстановления:

Стандартная утилита dd осуществляет линейное чтение диска, и это может занять много времени или даже сжечь накопитель без восстановления чего-либо, если ошибки расположены в начале жесткого диска.

dd_rescue делает то же самое, что и dd, только более эффективно.

dd_rhelp — это сложный shell-скрипт, который запускает dd_rescue много раз, стараясь стратегически копировать накопитель, но это очень неэффективно.

dd_rhelp сначала извлекает все доступные к чтению данные и сохраняет их в файл, вставляя нули вместо байтов, которые не смог прочесть. Потом утилита пытается повторно прочитать некорректные данные и обновить этот файл.

GNU dd_rescue может быть использована для копирования данных прямо на новый диск по необходимости, как и dd.

=======================

Создание ISO на USB плюс ''persistence''

Created Friday 02 September 2016

На примере загрузочной флеш Kali-Linux

Подключите USB-устройство к USB-порту вашего Linux-компьютера.

Проверьте при помощи dmesg (lsblk) (df) (dmesg | tail - в квадратных скобках имя ус-ва присвоенное системой) путь к устройству USB.

Приступите к записи образа Kali ISO на USB-устройство:

dd if=kali.iso of=/dev/sdb bs=512k

dd if=~/ваш_образ.iso(.img) of=/dev/sdc bs=5M

для Flash ,блоки = 512 (обычно)

Добавление persistence (способности сохранять файлы и изменения во время загрузки)

В примере предполагается, диск USB это /dev/sdb, sdb1 → partition.

  1. Запишите Kali Linux ISO на ваш USB накопитель, как описано выше, с использованием Linux и dd.

  2. Создайте и отформатируйте дополнительный раздел на USB накопителе. В нашем примере мы используем gparted: gparted /dev/sdb

  3. Ваша текущая схема разбиения диска должна выглядеть примерно так:

4.Приступите к форматированию нового раздела нужного размера, который будет использоваться для сохранения. В нашем примере мы использовали все оставшееся пространство. Убедитесь, что метка тома вновь созданного раздела – persistence, и отформатируйте его, используя файловую систему ext4.

5. Как только процесс завершится, подмонтируйте ваш USB раздел persistence, используя следующие команды:

mkdir /mnt/usb <---- если не создана

mount /dev/sdb2 /mnt/usb

echo "/ union" >> /mnt/usb/persistence.conf

umount /mnt/usb

Если вы хотите загрузиться, вставьте флэш в компьютер. Убедитесь, что BIOS настроен на загрузку с USB устройства. Когда отобразится загрузочный экран Kali Linux, выберите Live в меню загрузки (не нажимайте Enter), нажмите на клавишу tab. Это позволит вам изменить параметры загрузки. Добавьте слово “persistence” в конце строки параметров загрузки каждый раз, когда вы хотите смонтировать ваше persistent устройство, вариантом будет наличие в меню пункта "persistence", тогда через него.

======================

Для Microsoft -----> {rufus-2.10.exe, unetbootin-windows-625.exe, Win32DiskImafer-0.9.5-install.ex}

Что касается "persistence" для Ubuntu - подобных дистрибьютивов, в случае Windows, самым кор-

ректным похоже будет: unetbootin-windows-625.exe, для всего остального <dd>.

======================