У вас есть несколько вариантов: защитить свой resolv.conf, изменить код dhclient и отключить автообновление серверов имен, или отключить DNS с eth0.
Вариант 1: Защита от записи файла /etc/resolv.conf:
$ chattr +i /etc/resolv.conf
Опция +i (атрибут) защищает от записи файл /etc/resolv.conf в Linux так, что никто не может его изменить, включая пользователя root.
Вариант 2: dhclient-script hooks
Откройте файл "resolvconf" в папке dhclient:
$ nano /etc/dhcp/dhclient-enter-hooks.d/resolvconf
и измените код на:
make_resolv_conf(){
:
}
Приведенный выше скрипт заменит make_resolv_conf() на нашу собственную функцию. Эта функция ничего не делает.
Вариант 3:
Откройте ваш файл ifcfg:
$ nano /etc/sysconfig/network-scripts/ifcfg-eth0
и измените опцию PEERDNS на No:
PEERDNS=no
Bonus: Это не отменит ваш файл resolv.conf и не отключит обновление DNS, но перезапишет вашу таблицу маршрутов. Когда вы посылаете какой-либо DNS-запрос, независимо от содержимого вашего файла resolv. conf он проверит вашу таблицу маршрутов и отправит запрос на определенный адрес:
$ ip route add 8.8.8.8/32 via 192.168.1.1
Если вы не можете каждый раз выполнять цикл сжатие файловой системы -> резервное копирование -> увеличение файловой системы
(при условии, что файловая система поддерживает как сжатие, так и увеличение и достаточно надежна, чтобы выдерживать такие повторяющиеся циклы без нарушения ), вам следует рассматривать не резервное копирование на уровне блоков (т.е. образ раздела, созданный dd), а резервное копирование на уровне файловой системы (например, образ файловой системы, созданный partclone или около того, который будет пропускать неиспользуемые блоки в способ с учетом файловой системы) или резервное копирование на основе файлов (например, tar, rsync...).
Используйте средство создания образов системы, например Ghost (платное) или clonezilla (бесплатное и бесплатное).
Чтобы клонировать образ Pi, вам нужно вставить SD-карту в компьютер, загрузить clonezilla и скопировать образ всей SD-карты в файл на жестком диске. Восстановление — обратный процесс.
Вы должны точно знать, какие данные вы хотите сделать резервной копией. Допустим, у вас есть 4 ГБ данных на диске емкостью 32 ГБ.
Используйте:seek and count
с дд.
Чтобы скопировать 4G с накопителя
dd=if/dev/sdb1 of=mybackup.iso bs=1M count=4096 conv=noerror,sync
Вышеприведенное скопирует 4G из раздела /dev/sdb1. Однако вы можете решить скопировать данные из xMB в xGB
.dd=if/dev/sdb1 of=mybackup.iso bs=1M seek=xMB count=x noerror,sync
мы использовали seek для продвижения вперед, поэтому seek=2G начнет копировать из 2G не с начала, count=x — это объем данных, которые необходимо скопировать, поэтому count=4096 скопирует 4096 x 1MB = 4G
Не забудьте использовать lsblk
, чтобы показать свой блок
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 37.3G 0 disk
|-sda1 8:1 0 19.5G 0 part /
|-sda2 8:2 0 17.2G 0 part /home
`-sda3 8:3 0 511M 0 part [SWAP]
fdisk /dev/sdb
Device Boot Start End Blocks Id System
/dev/sda1 * 4096 40962047 20478976 83 Linux
/dev/sda2 40962048 77111295 18074624 83 Linux
/dev/sda3 77111296 78157823 523264 82 Linux swap / Solaris
После некоторого использования системы вам нужно будет проанализировать, где именно эти 4 ГБ расположены на вашей SD-карте, поэтому dd
простое знакомство с устройством может быть рискованным.
Я предлагаю передать изображение через утилиту сжатия. Даже большие пробелы без содержимого почти не займут места в сжатом изображении :
.dd if=/dev/sdxxx conv=sync,noerror bs=64K | gzip -c > sdxxx.image.gz