dd kullanarak yedekleme ve görüntü geri yükleme

dd nedir?

dd komutu, çoğu Unix benzeri işletim sisteminde yaygın olarak kullanılan, dosyaları kopyalamak ve dönüştürmek için kullanılan bir yardımcı programdır. Veri yedekleri oluşturma, diskleri klonlama, bölüm görüntüleri oluşturma ve daha fazlası gibi görevler için kullanılabilir. Ancak, yanlış kullanım veri kaybına yol açabileceğinden dd kullanırken dikkatli olunmalıdır.

İşte dd komutunun temel sözdizimi:

dd if=input_file of=output_file [options]

Nerede:
- if (girdi dosyası) girdi dosyasını veya veri kaynağını belirtir.
- of (çıktı dosyası) çıktı dosyasını veya veri için hedefi belirtir.

Aşağıda dd'nin bazı yaygın seçenekleri ve parametreleri yer almaktadır:

1. bs (blok boyutu): Veri bloğunun boyutunu belirler. Örneğin, bs=4K blok boyutunu 4 kilobayt olarak ayarlar.
2. count (sayım): Kopyalanacak blok sayısını belirtir. Örneğin, count=100 100 veri bloğunu kopyalar.
3. iflag ve oflag: Giriş ve çıkış bayraklarını kontrol etmek için seçenekler. Örneğin, iflag=direct, işletim sistemi önbelleğini atlayarak verileri doğrudan okumak için kullanılabilir.
4. seek ve skip: Kopyalamayı belirli bir konumdan başlatmak veya sonlandırmak için girdi veya çıktı dosyası işaretçisini hareket ettirme seçenekleri.
5. durum: Kopyalama işleminin ilerleyişi hakkında bilgi görüntüleme seçeneği.
6. conv (dönüştürme): Büyük/küçük harf değişimi (conv=ucase veya conv=lcase), karakter silme (conv=sync) ve daha fazlası gibi çeşitli veri dönüşümlerine izin verir.
7. iflag ve oflag: Bu seçenekler giriş (iflag) ve çıkış (oflag) verileri için bayrakları yapılandırmanızı sağlar. Örneğin, direct ara belleğe almadan doğrudan veri okumak veya yazmak için kullanılabilir.
8. durum: Bu seçenek kopyalama işleminin ilerleyişine ilişkin bilgilerin görüntülenmesini sağlar.
9. arama ve atlama: Kopyalamaya belirli bir konumdan başlamak için giriş veya çıkış dosya işaretçisini hareket ettirmenize olanak tanır.

SSH protokolü ve rsync komutunu kullanarak Introserv tarafından sağlanan uzak Bulut Depolama alanına dosya ve dizinleri kopyalamak için dd kullanma örneklerini ele alalım. Ek olarak, örnekte üçüncü bir disk kullanarak bir sistem görüntüsünün yedeklenmesi ve geri yüklenmesi gösterilecektir. Önemli not: Benzer komutlar, bir hedef sunucu belirtilerek, dizinleri ve dosyaları SSH aracılığıyla herhangi bir uzak sunucuya kopyalamanıza izin verecektir. Ayrıca, veri bütünlüğü için Finnix adlı bir "kurtarma" imajı kullanacağız.

Sistem İmajının Yedeğini Oluşturma

1. Bir yedekleme oluşturma:

Hazırlıklar:
1. Finnix'i https://www.finnix.org adresinden bilgisayarınıza indirin.
2. ISO görüntüsünü IP-KVM üzerinden bağlayın.
3. Sunucuyu Finnix ISO görüntüsünden önyükleyin.

2. Finnix ile Çalışma

Biri Introserv'in Bulut Depolamasını kullanarak mümkün olan iki yöntemi inceleyeceğiz.

SSH aracılığıyla uzak bir dosya depolama alanını (bulut depolama) bağlamak için, SSH protokolünü kullanarak yerel bilgisayarınızdaki uzak dizinlere bağlanmanızı sağlayan SSHFS (SSH Dosya Sistemi) gibi bir araç kullanmanızı öneririz. İşte nasıl yapılacağı:

2.1. SSHFS'yi yükleyin.

Finnix'te zaten kurulu olduğu için bu adımı gerçekleştirmeyeceğiz.

sudo apt-get install sshfs

2.2. Uzak klasörü bağlamak istediğiniz bir yerel dizin oluşturun.

Örneğin:

sudo mkdir -p /root/mnt/backup

Bu komut, eksik üst dizinler (-p bayrağı) dahil olmak üzere gerekli dizin yapısını oluşturur.

2.3. Uzak dizini SSHFS aracılığıyla bağlayın:

sudo sshfs box17469@box17469.introserv.cloud:/backups ~/mnt/backup/

- box*****: Uzak sunucudaki SSH kullanıcı adı.
- box*****.introserv.cloud: Uzak sunucunun IP adresi veya ana bilgisayar adı.
- /backups: Cloudstorage üzerindeki dizinin yolu.
- ~/remote_mount: Yukarıda oluşturduğumuz ve uzak klasörümüzü cloudstorage'dan bağlamak istediğimiz yerel dizinin yolu.

Sistem, Yedekleme bölümündeki sipariş ayrıntılarında bulabileceğiniz şifreyi soracaktır.

2.4. Ağ klasörümüzü kontrol edin.

2.5. Sisteminizin yedeğini oluşturmak için aşağıdaki komutu kullanın:

dd if=/dev/sda of=/root/mnt/backup/sda.ing bs=8M conv=sync,noerror

2 yöntemi üçüncü bir disk veya başka bir harici depolama alanı aracılığıyla mümkündür

2.1 Ana sistemin kurulu olduğu sabit sürücüyü belirleyin (bu durumda Ubuntu)

Bu durumda, bu sda'dır.

2.2 Ayrıca, yedek imajı buraya yerleştirebilmek için harici sürücünün klasörünü de bağlayın.

Oluşturulan dosya sistemini /mnt/ dizinine bağlamak için aşağıdaki komutları çalıştırın:

sudo mount /dev/sdX /mnt/папка # sdX yerine ilgili aygıt ya da bölümü yazın (bu durumda sdb)

Sabit sürücünüzün yedeğini oluşturmak için aşağıdaki komutu kullanın:

dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror

- if=/dev/sda - sda sabit sürücüsünün tamamını kopyalar;
- of=/mnt/backup/sda.img - /mnt/backup/sda.img dosyasına kopyalar, burada /mnt/backup dizini görüntüyü içeren diskin bağlama noktasıdır;
- bs=8M - kopyalama işlemini hızlandırmak için sabit sürücü önbelleğinin boyutunu ayarlayın (aksi takdirde veriler 512 baytlık küçük gruplar halinde temizlenecektir);
- conv=sync,noerror - dd'ye hataları göz ardı ederek bit bit kopyalama yapmasını söyleyin.

Bir sistem yedeğini başka bir sunucuya veya diske geri yükleme

1. Kurtarma görüntüsünün bağlanması

  • ISO görüntüsünü IP-KVM üzerinden bağlayın.
  • Sunucuyu Finnix ISO görüntüsünde yeniden başlatın.

2. Finnix ile Çalışma

Tıpkı yedeklemede olduğu gibi, CloudStorage kullanarak iki yolumuz var:

2.1. Uzak klasörü bağlamak istediğiniz bir yerel dizin oluşturun. Örneğin:

sudo mkdir -p /root/mnt/backup

2.2. Uzak dizini SSHFS aracılığıyla bağlayın:

sudo sshfs box17469@box17469.introserv.cloud:/backups ~/mnt/backup

Sistem, Yedekleme bölümü altındaki sipariş ayrıntılarında bulabileceğiniz bir parola isteyecektir.

Ayrıca klasörün bağlı olup olmadığını da kontrol edin.

ls -l /root/mnt/backup/

2.3. Bağlı ağ sürücümüzde sda.img imzalı görüntüyü bulun.

Sisteminizi bir yedekten geri yüklemek için aşağıdaki komutu kullanın:

dd if=/root/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

2.4. Bundan sonra, BIOS'u yeniden başlatıyoruz

Sistemi dağıttığımız diski önyükleme önceliği olarak ayarlayın, yeniden başlatın ve sistemi başlatmayı deneyin.

Ayrıca, üçüncü bir disk veya başka bir depolama alanı kullanarak bir sistem görüntüsü dağıtmayı düşünelim:

2.1. Finniх.

sudo mount /dev/external_network_disk_or_storage /mnt/folder_for_mounting komutunu kullanarak ağ depolama alanını veya diski görüntüyle birlikte bağlayın.

sda.img imzalı görüntüyü bulun

Sisteminizi bir yedekten geri yüklemek için aşağıdaki komutu kullanın:

dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

Bundan sonra, BIOS'a yeniden giriyoruz ve sistemi dağıttığımız diski önyükleme önceliği olarak ayarlıyoruz, yeniden başlatıyoruz ve sistemi başlatmayı deniyoruz.