π½ dd: ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΎ Π² Linux

ΠΡ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° bootable ΡΠ»Π°ΡΠΊΠΈ Π΄ΠΎ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ β ΠΈΡΡΠΈΠ½ΡΠΊΠΈΡΡ ΡΠ²Π΅ΠΉΡΠ°ΡΡΠΊΠΈ Π½ΠΎΠΆ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.
π§ ΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
dd
Π΅ Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΌΠΎΡΠ½ΠΈΡΠ΅, Π½ΠΎ ΡΡΡΠΎ ΠΈ Π½Π°ΠΉ-ΠΎΠΏΠ°ΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² Π°ΡΡΠ΅Π½Π°Π»Π° Π½Π° Π²ΡΠ΅ΠΊΠΈ Linux ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π». Π‘ΡΠ·Π΄Π°Π΄Π΅Π½Π° Ρ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½Π° Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡ, ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΠ²Π° Π±ΠΈΡ ΠΏΠΎ Π±ΠΈΡ, Π±Π»ΠΎΠΊ ΠΏΠΎ Π±Π»ΠΎΠΊ β ΠΎΡ Π΅Π΄Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° Π΄ΡΡΠ³ΠΎ, ΠΎΡ ΡΠ°ΠΉΠ» ΠΊΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΊΡΠΌ ΡΠ°ΠΉΠ» ΠΈ Π΄ΠΎΡΠΈ Π΄Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΏΡΡΡ.
Π’Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅:
- β ΠΠ° ΡΡΠ·Π΄Π°Π²Π° bootable USB ΡΠ»Π°ΡΠΊΠΈ
- β ΠΠ° ΠΊΠ»ΠΎΠ½ΠΈΡΠ° ΡΠ΅Π»ΠΈ Π΄ΠΈΡΠΊΠΎΠ²Π΅
- β ΠΠ° ΠΏΡΠ°Π²ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ ΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅
- β ΠΠ° ΡΠ΅ΡΡΠ²Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠΎΠ²Π΅ΡΠ΅
- β ΠΠ° Π½ΡΠ»ΠΈΡΠ° ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
Π ΡΠΎΡΠ½ΠΎ Π·Π°ΡΠΎΠ²Π° dd
ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡΠΎ ΠΎΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ, ΡΠ°ΠΊΠ° ΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ, Π΅ΠΊΡΠΏΠ΅ΡΡΠΈ ΠΏΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈ Π΅Π½ΡΡΡΠΈΠ°ΡΡΠΈ.
βοΈ ΠΡΠ½ΠΎΠ²Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
dd if=Π²Ρ
ΠΎΠ΄Π΅Π½_ΡΠ°ΠΉΠ» of=ΠΈΠ·Ρ
ΠΎΠ΄Π΅Π½_ΡΠ°ΠΉΠ» [ΠΎΠΏΡΠΈΠΈ]
if=
β input file (Π²Ρ ΠΎΠ΄Π΅Π½ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ)of=
β output file (ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ)bs=
β block size (ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠ°, Π½Π°ΠΏΡ. 4M)count=
β ΠΊΠΎΠ»ΠΊΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π° ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Ρstatus=progress
β ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡΠΎΠ³ΡΠ΅ΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ°
π§ͺ ΠΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΡΠ΅Π°Π»Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°
πΉ 1. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° bootable USB ΠΎΡ ISO ΡΠ°ΠΉΠ»
sudo dd if=ubuntu.iso of=/dev/sdX bs=4M status=progress oflag=sync
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π£Π²Π΅ΡΠΈ ΡΠ΅, ΡΠ΅
/dev/sdX
Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎ USB ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π·Π° Π΄Π° Π½Π΅ ΠΈΠ·ΡΡΠΈΠ΅Ρ Π³ΡΠ΅ΡΠ½ΠΈΡ Π΄ΠΈΡΠΊ.
πΉ 2. ΠΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ» Π΄ΠΈΡΠΊ
sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
ΠΠ»ΠΎΠ½ΠΈΡΠ° Π΄ΠΈΡΠΊ
/dev/sda
ΠΊΡΠΌ/dev/sdb
β ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°.
πΉ 3. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ISO ΠΎΡ CD/DVD
dd if=/dev/cdrom of=backup.iso bs=2M status=progress
πΉ 4. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° MBR (Master Boot Record)
dd if=/dev/sda of=mbr_backup.img bs=512 count=1
ΠΠ°ΠΏΠ°Π·Π²Π° ΠΏΡΡΠ²ΠΈΡΠ΅ 512 Π±Π°ΠΉΡΠ° Π½Π° Π΄ΠΈΡΠΊΠ° (MBR ΠΈ partition table).
πΉ 5. ΠΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° MBR ΠΎΡ Π°ΡΡ ΠΈΠ²
dd if=mbr_backup.img of=/dev/sda bs=512 count=1
πΉ 6. ΠΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΠΊ Ρ Π½ΡΠ»ΠΈ (Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ)
dd if=/dev/zero of=/dev/sdX bs=1M status=progress
ΠΡΠ΅ΠΌΠ°Ρ Π²Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΄ΡΠ»ΠΎΠ²Π΅. ΠΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ ΠΏΡΠΈ ΡΠ΅ΡΠΈΠΊΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²Π΅.
πΉ 7. ΠΠ΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ» Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π΄Π°Π½Π½ΠΈ
dd if=/dev/urandom of=random.img bs=1M count=100
Π‘ΡΠ·Π΄Π°Π²Π° 100MB ΡΠ°ΠΉΠ» Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ β ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΡΠ΅Π»ΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅.
πΉ 8. Π’Π΅ΡΡ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠ΅ΡΠ΅Π½Π΅/Π·Π°ΠΏΠΈΡ Π½Π° Π΄ΠΈΡΠΊ
dd if=/dev/zero of=testfile bs=1G count=1 oflag=dsync
ΠΠΎΠΊΠ°Π·Π²Π° ΡΠ΅Π°Π»Π½Π°ΡΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° Π·Π°ΠΏΠΈΡ.
π οΈ ΠΠΎΠ»Π΅Π·Π½ΠΈ ΠΎΠΏΡΠΈΠΈ
ΠΠΏΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|
bs=4M | Π Π°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊ β ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π±ΡΡΠ·ΠΎ (Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ) |
count=100 | ΠΠΎΠ»ΠΊΠΎ Π±Π»ΠΎΠΊΠ° Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΡ |
status=progress | ΠΠΎΠΊΠ°Π·Π²Π° Π½Π°ΠΏΡΠ΅Π΄ΡΠΊΠ° Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ |
conv=noerror | ΠΠ³Π½ΠΎΡΠΈΡΠ° Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½Π΅ |
conv=sync | ΠΠ°ΠΏΡΠ»Π²Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π΄ΠΎ ΠΏΡΠ»Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ |
iflag=direct | ΠΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ, ΠΈΠ·Π±ΡΠ³Π²Π°ΠΉΠΊΠΈ ΠΊΠ΅ΡΠ° |
𧨠ΠΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅
dd
Π½Π΅ ΠΏΠΈΡΠ°! ΠΡΠΌΠ° βΠ‘ΠΈΠ³ΡΡΠ΅Π½ Π»ΠΈ ΡΠΈ?β β Π΅Π΄Π½Π° Π³ΡΠ΅ΡΠΊΠ° Π² ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΡΡΠΈΠ΅ ΡΠ΅Π»ΠΈΡ ΡΠΈ Π΄ΠΈΡΠΊ.
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠ°:
sudo dd if=~/ubuntu.iso of=/dev/sda bs=4M
π ΠΠΊΠΎ /dev/sda
Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΡ Π΄ΠΈΡΠΊ, Π³ΡΠ±ΠΈΡ Π²ΡΠΈΡΠΊΠΎ.
π‘ ΠΠΈΠ½Π°Π³ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΉ Ρ:
lsblk
π§ Π‘ΡΠ²Π΅ΡΠΈ ΠΎΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΡΠ°
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉ
status=progress
Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ - ΠΠ°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π°Π²Π°ΠΉ ΠΏΡΡΡ Π΄ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° (
lsblk
,fdisk -l
) - ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉ
sync
ΠΈnoerror
ΠΏΡΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π΅ΡΠ΅ΠΊΡΠ½ΠΈ Π΄ΠΈΡΠΊΠΎΠ²Π΅ - ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉ
gzip
Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° Π°ΡΡ ΠΈΠ²ΠΈ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅:
bashΠΠΎΠΏΠΈΡΠ°Π½Π΅Π Π΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅dd if=/dev/sda bs=64K | gzip > backup.img.gz
π ΠΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π°ΡΡ ΠΈΠ²
gunzip -c backup.img.gz | dd of=/dev/sda bs=64K
π ΠΠ°ΠΊ Π΄Π° βΠΏΡΠ΅Π³Π»Π΅Π΄Π°Ρβ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡ Π΄ΠΈΡΠΊ Ρ dd
ΠΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π±Π»ΠΎΠΊ:
dd if=/dev/sda bs=512 skip=2048 count=1 | hexdump -C
π ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
dd
Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠΎΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΈ ΡΠΏΠ΅ΡΡΠΈ ΡΠ°ΡΠΎΠ²Π΅ ΡΠ°Π±ΠΎΡΠ°β¦ ΠΈΠ»ΠΈ Π΄Π° ΡΠΈ ΡΡΡΡΠ²Π° ΡΡΠ»Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π°ΠΊΠΎ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ.
ΠΠΎ Π°ΠΊΠΎ Π³ΠΎ Π²Π»Π°Π΄Π΅Π΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π΄Π°:
- ΠΡΡ ΠΈΠ²ΠΈΡΠ°Ρ
- ΠΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Ρ
- ΠΠ»ΠΎΠ½ΠΈΡΠ°Ρ
- Π’Π΅ΡΡΠ²aΡ
- ΠΠ·ΡΡΠΈΠ²Π°Ρ
…Π²ΡΠΈΡΠΊΠΎ β Ρ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°.
π§ ΠΠΎΠ½ΡΡ: alias Π·Π° ΠΏΠΎ-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π° ΡΠ°Π±ΠΎΡΠ°
ΠΠΎΠ±Π°Π²ΠΈ Π² .bashrc
ΠΈΠ»ΠΈ .zshrc
:
alias ddcopy=βdd status=progress bs=64Kβ