Jak używać polecenia DD w Linux

Jak używać polecenia DD w Linux
Dd Dowództwo służy do robienia wielu ważnych rzeczy. Najczęstsze i powszechne użycie Dd Poleceniem jest tworzenie napędów USB rozruchowych z ISO Lub Img plik graficzny. Wiele go używam, aby wytwarzać rozruchowe dyski USB różnych dystrybucji Linux. Ale są inne zastosowania Dd polecenie również. Na przykład Dd Komenda może być używana do wykonania kopii zapasowej tabeli partycji, konwersji tekstów i plików, zainstalowania bootloadera na dysku twardym, dysk SSD lub USB. Dd Dowództwo można również użyć do testowania wydajności urządzeń pamięci, takich jak opóźnienie dysku twardego, prędkość odczytu i zapisu na dysku twardym itp.

W tym artykule pokażę wam niektóre z wspólnych zastosowań Dd polecenie w Linux. Będę używać debiana 9 odcinka do demonstracji. Ale powinien działać na dowolnym innym dystrybucji Linuksa. Zacznijmy.

Tworzenie rozruchowego napędu USB z DD:

Tworzenie rozruchowego napędu USB swojego ulubionego systemu operacyjnego z Dd Polecenie jest bardzo łatwe. Wszystko, czego potrzebujesz, to napęd USB i ISO Lub Img obraz systemu operacyjnego, z którego chcesz zrobić rozruchowy USB.

Załóżmy, że pobrałeś ISO obraz alpine Linux i plik jest zapisywany w ~/Pobieranie katalog as Alpine-Standard-3.8.0-x86_64.ISO

Teraz możesz wymienić wszystkie podłączone urządzenia do przechowywania lub blokowania za pomocą następującego polecenia:

$ sudo lsblk

Jak widać, wymienione są wszystkie podłączone urządzenia pamięci lub blokowe. Tutaj, /dev/sdb to mój napęd USB. Ma dwie partycje, /dev/sdb1 I /dev/sdb2. Ale kiedy tworzysz napędy rozruchowe USB, musisz użyć /dev/sdb, Całe urządzenie blokowe, a nie żadne partycje.

Teraz zrób rozruchowy dysk USB Alpine Linux za pomocą następującego polecenia:

$ sudo dd if = ~/pobieranie/alpine-standard-3.8.0-x86_64.ISO o =/dev/sdb BS = 1M

Tutaj, jeśli =~/Pobieranie/alpine-standard-3.8.0-x86_64.ISO Opcja służy do powiedzenia Dd że plik wejściowy znajduje się na ścieżce ~/Pobieranie/alpine-standard-3.8.0-x86_64.ISO i o =/dev/sdb Opcja służy do powiedzenia Dd że plik wyjściowy znajduje się na ścieżce /dev/sdb. BS =1m mówi Dd czytać z ~/Pobieranie/alpine-standard-3.8.0-x86_64.ISO i napisz do /dev/sdb 1 megabajty danych jednocześnie.

Jak widać, plik ISO jest kopiowany do urządzenia blokowego /dev/sdb. Teraz możesz go użyć do instalacji Alpine Linux.

To polecenie jest bardzo destrukcyjne. Dd Polecenie wyciera tabelę partycji i inne metadane, flagi z urządzenia blokowego. Więc musisz być ostrożny.

Wyświetlanie paska postępu:

Domyślnie, Dd polecenie nie pokazuje żadnego paska postępu. Ale możesz powiedzieć Dd pokazać to z Status = postęp opcja.

Na przykład, aby skopiować dane z /dev/sda Do /dev/sdb 1 megabajty jednocześnie, a także pokazują pasek postępu, uruchom następujące polecenie:

$ sudo dd if =/dev/sda o =/dev/sdb bs = 1m Status = postęp

Jak widać, pasek postępu jest wyświetlany. Możesz zobaczyć, ile danych jest kopiowane, i stawki, z jaką są one kopiowane.

Mierzenie odczytu i zapisu wydajności urządzenia pamięci z DD:

Możesz zmierzyć prędkość odczytu i zapisu urządzenia pamięci Dd bardzo łatwo. Oczywiście istnieje wiele graficznych oprogramowania, które dostarczają tych informacji, ale miłośnicy wiersza poleceń uznaliby to za bardzo interesujące.

Najpierw musisz zamontować partycję lub urządzenie pamięci masowej w systemie plików. Jeśli nie masz partycji na urządzeniu pamięci, zawsze możesz go utworzyć za pomocą Fdisk polecić i sformatuj go do pożądanego systemu plików (takich jak Fat32, Ext4, NTFS, XFS itp). Tutaj zakładam, że masz partycję /dev/sdb1 i jest sformatowany jako Ext4.

Powiedzmy, że chcesz zamontować /dev/sdb1 partycja do /MNT Directory, a następnie uruchom następujące polecenie:

$ sudo Mount /dev /sdb1 /mnt

Jak widać, partycja /dev/sdb1 jest zamontowany /MNT informator.

$ df -h

Teraz utwórzmy plik 1 GB testRw w /MNT katalog z Dd:

$ sudo dd if =/dev/zero =/mnt/testRw bs = 1 g liczba = 1 OFLAG = bezpośredni

Tutaj, Count = 1 oznacza, przeczytaj BS = 1G który jest 1 gigabajt z /dev/zero, i napisz to do /mnt/testRw plik.

OFLAG = bezpośredni Opcja służy do wyłączenia buforowania dysku. Jeśli buforowanie dysku jest włączone, nie uzyskasz bardzo dokładnych wyników.

NOTATKA: Pamiętaj, że dla tej operacji musisz mieć co najmniej 1 GB bezpłatnej pamięci lub pamięci RAM na komputerze. Jeśli nie możesz sobie pozwolić na tyle wolnego pamięci, zmniejsz rozmiar BS. Na przykład, ustaw BS = 128 m a nawet mniej, BS = 64 m.

Jak widać, prędkość zapisu mojego dysku USB wynosi około 6.1 MB na sekundę.

Możesz także przetestować prędkość odczytu urządzenia pamięci masowej za pomocą następującego polecenia:

$ sudo dd if =/mnt/testRw o = ~/pobrań/test bs = 1 g liczba = 1 OFLAG = Direct

Jak widać, mogę przeczytać o 4.3 MB na sekundę.

Testowanie opóźnienia urządzenia pamięci masowej z DD:

Opóźnienie urządzenia pamięci to czas potrzebny na dostęp do urządzenia. Jest to ważny parametr, który możemy określić za pomocą Dd Komenda.

Aby przetestować opóźnienie, możemy pisać lub odczytać małe fragmenty danych (około 512 bajtów jednocześnie) x razy i zobaczyć, jak długo to trwa. Następnie możemy obliczyć, ile czasu zajmuje bardzo łatwe odczytanie lub napisanie pojedynczej części danych. Nazywa się to opóźnieniem urządzenia pamięci.

Załóżmy na przykład, że chcesz obliczyć opóźnienie zapisu. Teraz uruchom następujące polecenie, aby napisać 512 bajtów około 1000 razy:

$ sudo dd if =/dev/zero =/mnt/testx bs = 512 liczba = 1000 Oflag = bezpośredni

Jak widać, trwa 16.4541 sekundy do pisania 1000 fragmenty 512 Dane bajtów. Teraz, aby napisać jedną część danych, to wymaga (16.4541S / 1000 = 0.0164 s) 0.0164 sekundy. Więc opóźnienie pisania wynosi około 0.0164 sekundy dla tego urządzenia pamięci.

Możesz obliczyć opóźnienie odczytu w ten sam sposób.

W ten sposób używasz DD i testuj wydajność urządzenia I/O. Dziękujemy za przeczytanie tego artykułu.