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/shtool
agregarí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_folder
y configúrela como desee.
Системы Unix делают устройства хранения доступными через файл устройства . Файлы устройств во многом ведут себя как обычные файлы. В частности, чтобы сделать точную копию устройства хранения, вы просто копируете содержимое исходного устройства на целевое устройство.
Сначала необходимо определить файл исходного устройства и файл целевого устройства. Имя зависит от вашего варианта Unix и от того, как он настроен, но на практике файлы устройств всегда находятся в каталоге /dev
. Если у вас установлена SD-карта, вы можете найти файл устройства с
df /media/sdcard1/some/file/on/the/sdcard
Файл устройства находится в первом столбце. Другие инструменты могут предоставить ту же информацию, например, сообщения журнала ядра при вставке SD-карты или команду lsblk
в Linux.
На карте могут быть разделы. Если это так, скопируйте карту целиком, даже если имеется один раздел, поскольку некоторая информация о времени загрузки -может находиться за пределами раздела. Например, если df
показывает /dev/sdb1
в Linux, скопируйте /dev/sdb
, а не только /dev/sdb1
.
Если вы вытащите SD-карту и вставите ее снова, она обычно будет иметь то же имя файла устройства, что и раньше, но это не гарантируется.
Перед копированием убедитесь, что:
lsblk
отображает размер устройства. Предположим, вы определили, что исходное устройство — /dev/sdb
, а целевое — /dev/sdc
. Чтобы скопировать содержимое, выполните следующую команду от имени пользователя root:
cat /dev/sdb >/dev/sdc
Если вы используете sudo, перенаправление >
должно выполняться от имени пользователя root,поэтому вам нужно написать что-то вроде
sudo sh -c 'cat /dev/sdb >/dev/sdc'
В качестве альтернативы, чтобы случайно не перезаписать не то устройство, можно выполнить два шага:
gatorback
в моем примере )разрешение на чтение с исходного устройства(dev/sdb
в моем примере )и запись на исходное устройство(/dev/sdc
в моем примере ).sudo setfacl -m user:gatorback:r /dev/sdb
sudo setfacl -m user:gatorback:w /dev/sdc
cat /dev/sdb >/dev/sdc
Вы можете скопировать образ диска в файл, а затем скопировать файл образа на целевое устройство. Это полезно, если вам нужно сделать несколько копий, или если у вас есть только одно устройство чтения SD-карт, или для снижения риска копирования в неправильном направлении.
sudo cat /dev/sdb >sdcard.image
sudo mount -o loop -r sdcard.image /mnt
. sudo sh -c 'cat sdcard.image >/dev/sdb'
Если вы хотите удобно видеть информацию о прогрессе, используйтеpv
вместо cat
(pv
. Он редко устанавливается по умолчанию, но доступен в виде пакета в большинстве дистрибутивов ).
Если вы просто хотите точно скопировать 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