Рейтинг:0

MD5 хэширует все файлы на USB-накопителе и сохраняет выходной файл на USB-накопителе.

флаг cm

поэтому я пытаюсь понять, как хэшировать все файлы в каталоге USB. Я наткнулся на другой пост, похожий на мой, включая этот скрипт ниже:

найти "$PWD" -тип d | сортировать | во время чтения каталога; делать [ ! -f "${dir}"/@md5Sum.md5 ] && echo "Обработка" "${dir}" || echo "Пропущено" "${dir}" "@md5Sum.md5 уже присутствует" ; [ ! -f "${dir}"/@md5Sum.md5 ] && md5sum "${dir}"/* > "${dir}"/@md5Sum.md5 ; chmod a=r "${dir}"/@md5Sum.md5;готово

Он работает очень хорошо и делает все, что мне нужно, однако я не могу понять, как изменить его для работы с USB. Я уже заставил пользователя вводить USB-устройство, вводя /dev/sdf или /dev/sdg и т. д. Но я не могу понять, как перенести эту информацию в приведенную выше команду. Любые советы или предложения по этому поводу будут оценены.

sudodus avatar
флаг jp
Вы должны убедиться, что раздел на USB-накопителе **[автоматически] смонтирован** (и смонтировать его, если это не так).Затем измените каталог `cd` на точку монтирования и запустите свой скрипт.
sudodus avatar
флаг jp
[Эта ссылка] (https://askubuntu.com/questions/11840/how-do-i-use-chmod-on-an-ntfs-or-fat32-partition/956072#956072) и [эта ссылка] (https ://askubuntu.com/questions/958556/ubuntu-mounts-external-ntfs-drive-as-read-only/958604#958604) может быть полезно, если автоматическое монтирование файловой системы Microsoft (FAT32, exFAT, NTFS) не работает. работай.
флаг cm
@sudodus, так что он без проблем автоматически монтируется и может получить доступ ко всему. Команда, которую я пишу, состоит в том, чтобы клонировать весь USB-накопитель, включая шифрование битлокатора, на идентичный USB-накопитель. Я хочу создать хэш md5 исходного USB-накопителя, который затем будет скопирован на клонированный диск, а затем сделать еще один хеш md5, чтобы проверить, не было ли что-либо изменено во время копирования.
флаг cm
и причина, по которой я заставил их вводить /dev/sdf и т. д., состоит в том, чтобы убедиться, что это весь каталог USB, а не только отдельный раздел
sudodus avatar
флаг jp
Что ж, это отличается от того, что я думал, когда вы написали «хеширование всех файлов». Вы можете использовать `lsblk -f` и `lsblk -m`, чтобы получить список всех дисков и разделов и таким образом определить букву устройства USB-накопителя. Вы можете клонировать его грубым методом, используя `dd` на другой диск или в файл образа, или более эффективно с помощью [Clonezilla](https://askubuntu.com/questions/958242/fastest-way-to-copy-hdd /958248#958248). Трудно получить воспроизводимую сумму md5 клонированного диска, потому что целевой диск может быть больше исходного. Вместо этого **проверьте правильность работы клонированной копии**.
флаг cm
Я использую dd, так как это оказалось самым быстрым. Clonezilla по какой-то причине не работала у меня правильно и была не очень удобной для пользователя ... У меня все отсортировано в моей команде, и конечные пользователи знают, как найти имя USB-устройства. Я делал клоны в течение последнего месяца или около того, используя свою команду, поэтому я знаю, что это работает. Это просто попытка заставить эту команду, о которой я изначально прокомментировал, работать с тем, что у меня есть.
sudodus avatar
флаг jp
Вы создаете файл образа или клонированную копию USB-накопителя?
флаг cm
Побитовая копия USB
sudodus avatar
флаг jp
Затем вы сможете распечатать используемый размер исходного (исходного) USB-накопителя (до конца последнего раздела). Затем запустите dd с помощью bs, подсчитайте и передайте результат в md5sum. После клонирования вы должны убедиться, что вы получаете тот же результат на целевом диске. Обратите внимание, что диски обычно имеют не совсем одинаковый размер (в байтах), поэтому важно проверять одинаковые числа для bs и подсчета. (Целевой диск должен быть достаточно большим для копирования до конца последнего раздела исходного диска.)
флаг cm
Так что я еще не пробовал то, что вы предложили (@sudodus). Но я попытался изменить вышесказанное на это: `найти "/dev/$source" -тип d | сортировать | при чтении источника; делать [ ! -f "${источник}"/@md5Sum.md5 ] && echo "Обработка" "${источник}" || echo "Пропущено" "${source}" "@md5Sum.md5 уже присутствует" ; [ ! -f "${источник}"/@md5Sum.md5 ] && md5sum "${источник}"/* > "${каталог}"/@md5Sum.md5 ; chmod a=r "${source}"/@md5Sum.md5;готово` После этого никакого прогресса не наблюдается, и на указанном USB ничего не создается ... Тааак, я немного в тупике.
sudodus avatar
флаг jp
Вместо того, чтобы пытаться изменить ваш сценарий, я написал ответ, в котором сосредоточился на том, что я считаю важными шагами для проверки «всего» USB-накопителя. Я надеюсь, что это поможет вам достичь своей цели.
Рейтинг:0
флаг jp

Я сделал тест с iso-файлом Ubuntu Server. Ubuntu-20.04.3-живой-сервер-amd64.iso

от https://releases.ubuntu.com/20.04.3/ с sha256sum

f8e3086f3cea0fb3fefb29937ab5ed9d19e767079633960ccb50e76153effc98
  • Файл iso был клонирован на USB-накопитель. (Вы можете сделать это с помощью любого инструмента клонирования.)

  • Используемый размер на USB-накопителе определялся с помощью

    sudo fdisk -lu /dev/sdx
    

    куда Икс буква диска (идентифицируется с fdisk и например lsblk -f) и количество секторов (от 0 до 'end_sector') равно конечный_сектор + 1, поэтому в моем тестовом примере 2463616 и размер сектора 512 байт.

  • Убедитесь, что файловая система на диске не смонтирована, и размонтируйте разделы, если они смонтированы (но не извлекайте).

  • Проверьте на USB-накопителе

    Вычислить контрольную сумму на всей используемой части USB-накопителя,

    sudo dd if=/dev/sdx bs=512 count=2463616|sha256sum
    

    Результат этой проверки совпадает с загруженной контрольной суммой, которая подтверждает успешность операции клонирования. Вы можете предпочесть передавать вывод из дд к md5sum.

  • Если контрольная сумма у вас не совпадает, сначала проверьте правильность количества секторов и количества байтов (что вы проверили именно ту часть USB-накопителя).


  • Этот же метод работает и при клонировании с одного USB-накопителя на другой достаточно большой диск, поэтому проверьте новый диск (ша256сум или же md5sum по вашему выбору).
флаг cm
Большое спасибо за это sudo .... Наконец, я бы предпочел текстовый файл, содержащий md5 внутри него, который я могу создать. Но он всегда сохраняется на моем рабочем столе, как я могу сохранить его в других местах, например на моем USB-накопителе?
sudodus avatar
флаг jp
Вы можете сохранить результат в файл в смонтированной файловой системе, но не на проверяемом диске. Во избежание проблем вы также должны убедиться, что файловая система на проверяемом диске не смонтирована, поэтому при необходимости размонтируйте (но не извлекайте, потому что это отключит питание диска). Поэтому используйте полный путь `/точка монтирования/путь-каталога/имя-файла` туда, где вы хотите сохранить результат.

Ответить или комментировать

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