Dalam artikel ini, saya akan menunjukkan kepada anda beberapa penggunaan biasa dari dd arahan dalam Linux. Saya akan menggunakan Debian 9 Stretch untuk demonstrasi. Tetapi ia mesti berfungsi pada pengedaran Linux yang lain. Mari kita mulakan.
Membuat Pemacu USB yang Boleh Dibooting dengan dd:
Membuat pemacu USB bootable dari sistem operasi kegemaran anda dengan dd arahan sangat mudah. Yang anda perlukan hanyalah pemacu USB dan ISO atau IMG imej sistem operasi yang anda mahu buat USB bootable.
Mari kita anggap, anda telah memuat turun ISO gambar Alpine Linux dan fail disimpan ke ~ / Muat turun direktori sebagai alpine-standard-3.8.0-x86_64.iso
Sekarang, anda boleh menyenaraikan semua storan yang disambungkan atau menyekat peranti dengan arahan berikut:
$ sudo lsblkSeperti yang anda lihat, semua peranti storan atau blok yang disambungkan disenaraikan. Di sini, / dev / sdb adalah pemacu USB saya. Ia mempunyai dua bahagian, / dev / sdb1 dan / dev / sdb2. Tetapi apabila anda membuat pemacu boot USB, anda harus menggunakan / dev / sdb, keseluruhan peranti blok, bukan partisi.
Sekarang buat pemacu USB bootable dari Alpine Linux dengan arahan berikut:
$ sudo dd if = ~ / Muat turun / alpine-standard-3.8.0-x86_64.iso daripada = / dev / sdb bs = 1M
Di sini, jika =~ / Muat turun / alpine-standard-3.8.0-x86_64.iso pilihan digunakan untuk memberitahu dd bahawa fail input berada di jalan ~ / Muat turun / alpine-standard-3.8.0-x86_64.iso dan daripada =/ dev / sdb pilihan digunakan untuk memberitahu dd bahawa fail output berada di jalan / dev / sdb. The bs =1M memberitahu dd untuk membaca dari ~ / Muat turun / alpine-standard-3.8.0-x86_64.iso dan menulis kepada / dev / sdb 1 Megabait data pada satu masa.
Seperti yang anda lihat, fail ISO disalin ke blok peranti / dev / sdb. Sekarang anda boleh menggunakannya untuk memasang Alpine Linux.
Perintah ini sangat merosakkan. The dd arahan menghapus jadual partition dan metadata lain, bendera dari peranti blok. Jadi anda mesti berhati-hati.
Memaparkan Bar Kemajuan:
Secara lalai, dd arahan tidak menunjukkan bar kemajuan. Tetapi anda boleh memberitahu dd untuk menunjukkannya dengan status = kemajuan pilihan.
Contohnya, untuk menyalin data dari / dev / sda ke / dev / sdb 1 Megabait pada satu masa dan juga menunjukkan bar kemajuan, jalankan arahan berikut:
$ sudo dd if = / dev / sda of = / dev / sdb bs = 1M status = kemajuan
Seperti yang anda lihat, bar kemajuan dipaparkan. Anda dapat melihat berapa banyak data yang disalin dan kadar penyalinannya.
Mengukur Prestasi Baca dan Tulis Peranti Penyimpanan dengan dd:
Anda boleh mengukur kelajuan membaca dan menulis peranti storan dengan dd sangat mudah. Sudah tentu, terdapat banyak perisian grafik yang memberikan maklumat ini, tetapi peminat baris arahan akan menganggap ini sangat menarik.
Pertama, anda perlu memasang partition atau peranti storan pada sistem fail anda. Sekiranya anda tidak mempunyai partition pada peranti storan anda, anda selalu dapat membuatnya dengan fdisk perintah dan format ke sistem fail yang anda inginkan (seperti FAT32, EXT4, NTFS, XFS dan lain-lain). Di sini, saya menganggap bahawa anda mempunyai partition / dev / sdb1 dan diformat sebagai EXT4.
Katakan, anda mahu memasang / dev / sdb1 partition ke / mnt direktori, kemudian jalankan arahan berikut:
$ sudo mount / dev / sdb1 / mnt
Seperti yang anda lihat, partition / dev / sdb1 dipasang di / mnt direktori.
$ df -h
Sekarang mari kita buat fail 1 GB testrw di dalam / mnt direktori dengan dd:
$ sudo dd if = / dev / zero of = / mnt / testrw bs = 1G count = 1 oflag = langsungDi sini, kiraan = 1 bermaksud, baca bs = 1G yang merupakan 1 Gigabyte dari / dev / sifar, dan tuliskan kepada / mnt / testrw fail.
The oflag = langsung pilihan digunakan untuk melumpuhkan cache cakera. Sekiranya cache cakera diaktifkan, anda tidak akan mendapat hasil yang sangat tepat.
NOTA: Ingat, untuk operasi ini, anda mesti mempunyai sekurang-kurangnya 1 GB memori atau RAM percuma di komputer anda. Sekiranya anda tidak mampu mendapatkan RAM sebanyak itu, maka kurangkan ukuran bs. Contohnya, tetapkan bs = 128M atau lebih kurang, bs = 64M.
Seperti yang anda lihat, kelajuan menulis pemacu USB saya adalah sekitar 6.1 MB sesaat.
Anda juga boleh menguji kelajuan membaca peranti storan anda dengan arahan berikut:
$ sudo dd if = / mnt / testrw of = ~ / Downloads / test bs = 1G count = 1 oflag = langsung
Seperti yang anda lihat, saya dapat membaca di 4.3 MB sesaat.
Uji Latensi Peranti Storan dengan dd:
Kependaman peranti storan adalah masa yang diperlukan untuk mengakses peranti. Ini adalah parameter penting yang dapat kita tentukan dengan bantuan dd perintah.
Untuk menguji kependaman, kita dapat menulis atau membaca sekumpulan kecil data (kira-kira 512 bait pada satu masa) X kali dan melihat berapa lama. Kemudian kita dapat mengira berapa lama masa untuk membaca atau menulis satu bahagian data dengan sangat mudah. Ini dipanggil latensi peranti storan.
Sebagai contoh, katakan anda mahu mengira latensi menulis. Sekarang jalankan arahan berikut untuk menulis 512 bait sekitar 1000 kali:
$ sudo dd if = / dev / zero of = / mnt / testX bs = 512 count = 1000 oflag = langsung
Seperti yang anda lihat, diperlukan 16.4541 saat untuk menulis 1000 ketulan dari 512 data bait. Sekarang, untuk menulis satu bahagian data, diperlukan sekitar (16.4541s / 1000 = 0.0164 s) 0.0164 saat. Jadi latensi tulis adalah kira-kira 0.0164 saat untuk peranti storan ini.
Anda boleh mengira latensi baca dengan cara yang sama.
Oleh itu, anda menggunakan dd dan menguji prestasi peranti I / O dengannya. Terima kasih kerana membaca artikel ini.