Репликация SD-карты

Usted menciona en su comentario que los archivos provienen de Windows, lo cual es una afirmación extraña si no hay puntos de montaje en su máquina virtual errante. Si está utilizando la funcionalidad de carpeta sincronizada de vagabundo, sería útil saber esa información, es decir, puntos de montaje y cualquier opción de montaje que esté utilizando.

El comando chmod +x /var/www/html/wp-content/xdebug/build/shtoolagregaría el bit ejecutable para propietario, grupo y todos a ese archivo si existe en un sistema de archivos de Linux. Si, inmediatamente después de ejecutar eso, el bit de ejecución no se configuró, entonces la opción restante es que esos archivos se compartan/sincronicen desde Windows.

Las carpetas sincronizadas vagabundas están configuradas en su archivo vagabundo, debe establecer permisos y opciones de montaje allí, ya que no podrán configurarse con las herramientas estándar de Linux. Busque la configuración vm.synced_foldery configúrela como desee.

3
04.06.2019, 15:41
2 ответа

Системы Unix делают устройства хранения доступными через файл устройства . Файлы устройств во многом ведут себя как обычные файлы. В частности, чтобы сделать точную копию устройства хранения, вы просто копируете содержимое исходного устройства на целевое устройство.

Сначала необходимо определить файл исходного устройства и файл целевого устройства. Имя зависит от вашего варианта Unix и от того, как он настроен, но на практике файлы устройств всегда находятся в каталоге /dev. Если у вас установлена ​​SD-карта, вы можете найти файл устройства с

df /media/sdcard1/some/file/on/the/sdcard

Файл устройства находится в первом столбце. Другие инструменты могут предоставить ту же информацию, например, сообщения журнала ядра при вставке SD-карты или команду lsblkв Linux.

На карте могут быть разделы. Если это так, скопируйте карту целиком, даже если имеется один раздел, поскольку некоторая информация о времени загрузки -может находиться за пределами раздела. Например, если dfпоказывает /dev/sdb1в Linux, скопируйте /dev/sdb, а не только /dev/sdb1.

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

Перед копированием убедитесь, что:

  • Исходное устройство не смонтировано или смонтировано только для чтения -.
  • Целевое устройство вообще не подключено.
  • Размер целевого устройства не меньше размера источника. В Linux lsblkотображает размер устройства.
  • У вас правильное целевое устройство. Обратите внимание, что приведенная ниже команда перезапишет свое содержимое без запроса подтверждения!

Предположим, вы определили, что исходное устройство — /dev/sdb, а целевое — /dev/sdc. Чтобы скопировать содержимое, выполните следующую команду от имени пользователя root:

cat /dev/sdb >/dev/sdc

Если вы используете sudo, перенаправление >должно выполняться от имени пользователя root,поэтому вам нужно написать что-то вроде

sudo sh -c 'cat /dev/sdb >/dev/sdc'

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

  1. Дайте пользователю(gatorbackв моем примере )разрешение на чтение с исходного устройства(dev/sdbв моем примере )и запись на исходное устройство(/dev/sdcв моем примере ).
    sudo setfacl -m user:gatorback:r /dev/sdb
    sudo setfacl -m user:gatorback:w /dev/sdc
    
  2. Выполните копирование без sudo.
    cat /dev/sdb >/dev/sdc
    

Вы можете скопировать образ диска в файл, а затем скопировать файл образа на целевое устройство. Это полезно, если вам нужно сделать несколько копий, или если у вас есть только одно устройство чтения SD-карт, или для снижения риска копирования в неправильном направлении.

  1. sudo cat /dev/sdb >sdcard.image
  2. Извлеките исходную карту и вставьте целевую карту.
  3. При необходимости проверьте содержимое, смонтировав образ , например. sudo mount -o loop -r sdcard.image /mnt.
  4. sudo sh -c 'cat sdcard.image >/dev/sdb'

Если вы хотите удобно видеть информацию о прогрессе, используйтеpvвместо cat(pv. Он редко устанавливается по умолчанию, но доступен в виде пакета в большинстве дистрибутивов ).

1
27.01.2020, 21:12

Если вы просто хотите точно скопировать SD-карту с одной на другую, вы можете сделать это с помощью dd в командной строке.

Вы НЕ должны делать это с вашего raspberry pi из его собственной ОС. Это связано с тем, что ОС может записывать на SD-карту во время копирования и повреждать копию.

Чтобы скопировать SD-карту, подключите обе карты к двум считывателям (, неважно, USB они или нет ). Затем проверьте содержимое /dev. Карточки должны отображаться как /dev/sd*. Например /dev/sdb. Будьте осторожны, поскольку ваш внутренний жесткий диск уже может быть включен/dev/sda.

Убедитесь, что SD-карта не установлена,прочитайте вывод, набрав это в командной строке:

mount | grep /dev/sd

Также проверьте вывод, чтобы знать, какая карта имеет какое имя файла (как root):

sudo blkid

Чтобы скопировать (, например, из /dev/sdb в /dev/sdc ), введите (как root):

dd if=/dev/sdb of=/dev/sdc bs=4096 status=progress
7
27.01.2020, 21:12

Теги

Похожие вопросы