Next Previous Contents

6. Meng-copy file-file dari disk lama ke dalam disk baru

Anda perlu mereproduksi seluruh struktur disk secara lengkap termasuk semua link yang terdapat di dalamnya.

Selanjutnya, Anda perlu membuat direktori /proc di dalam disk baru, namun Anda tidak perlu meng-copy isi direktori tersebut: /proc adalah filesistem virtual. dan isinya bukan merupakan file sebenarnya namun berisi informasi mengenai proses-proses yang sedang berjalan di dalam sistem.

Berikut ini akan diuraikan 4 cara yang berbeda untuk meng-copy disk lama ke dalam disk baru. Dengan cara ini akan dibutuhkan waktu cukup lama terlebih-lebih jika Anda memiliki disk berkapasitas besar atau memori berukuran kecil. Anda dapat mengharapkan dapat meng-copy dengan kecepatan 10 MB per menit, bahkan mungkin bisa lebih cepat dari itu.

Anda dapat mengikuti perkembangan proses peng-copy-an tadi dengan menggunakan perintah "df" yang dilakukan dari terminal yang lain. Jika Anda termasuk orang yang mudah tertarik seperti halnya penulis, cobalah untuk menggunakan perintah watch df atau watch -ls -l /new-disk untuk melihat sebuah laporan yang selalu di-update setiap 2 detik; tekanlah tombol Ctrl-C untuk menghentikan tampilan tersebut. Berhati-hatilah karena menjalankan program "watch" itu sendiri akan memperlambat proses peng-copy-an yang sedang berjalan.

  1. cp -ax / /new-disk

    Cara ini merupakan cara yang paling sederhana, namun cara ini hanya akan bekerja jika sistem Linux yang asli terdapat di dalam satu partisi disk. Opsi -a adalah untuk menjaga agar sistem hasil copy sedapat mungkin sesuai dengan sistem aslinya. Opsi -x gunanya adalah untuk membatasi cp terhadap satu file sistem; pembatasan ini dibutuhkan untuk menghindarkan peng-copy-an terhadap direktori-direktori /new-disk maupun /proc.

  2. cd / && cp -a `/bin/ls -1A | egrep -v "^new-disk$|^proc$"` /new-disk

    (Tulislah perintah diatas di dalam satu baris)

    Cara ini akan menuju ke dalam direktori root, kemudian melakukan copy terhadap semua file maupun direktori yang terdapat di dalam direktori root tadi ke dalam direktori /new-disk kecuali direktori-direktori /new-disk sendiri dan /proc. Perhatikan bahwa opsi sesudah ls adalah angka 1 (satu), bukan huruf L!

    Perintah ini harus dapat berjalan dalam situasi apapun juga.

  3. (cd / && tar cpf - . --exclude new-disk --exclude proc) | (cd /new-disk && tar xpf -)

    (Tulislah perintah diatas di dalam satu baris)

    Cara ini akan menuju ke dalam direktori root, melakukan "tar" terhadap setiap file maupun direktori yang terdapat di dalamnya kecuali direktori-direktori /new-disk dan /proc, kemudian akan berpindah ke direktori /new-disk dan melakukan "untar" dari semua file serta direktori tadi pada tempat ini. Perhatikan bahwa tidak boleh ada sebuah slash (garis miring, /) sebelum dan sesudah nama-nama direktori di dalam opsi --exclude).

    (Catatan: opsi -l tidak akan bekerja disini, oleh karena tar akan selalu membuat kembali direktori-direktori /new-disk dan /proc meskipun tidak melakukan copy terhadap isi dari direktori-direktori tadi. Oleh karena itu, opsi -l dari perintah tar tidak memiliki perilaku yang sama dengan opsi -x dari perintah cp)

    Cara ini akan berjalan sedikit lebih lambat dibandingkan dengan cara-cara lainnya.

  4. cp -a /bin /boot /dev /etc /home /lib /lost+found /mnt /root /sbin /tmp /usr /var /new-disk

    (Tulislah perintah diatas di dalam satu baris)

    Direktori yang terakhir, /new-disk, merupakan tempat tujuan (destination) dari perintah cp sedangkan direktori-direktori lainnya merupakan sumber (source). Oleh karena itu, dengan cara ini penulis meng-copy semua direktori yang penulis telah urutkan ke dalam direktori /new-disk.

    Dengan cara ini, Anda cukup hanya dengan membuat urutan semua direktori yang akan di-copy. Di sini penulis mengurutkan semua direktori kecuali direktori-direktori /new-disk dan /proc. Jika Anda tidak dapat menggunakan cara-cara yang lain tadi karena suatu alasan tertentu, Anda selalu akan dapat menggunakan perintah ini yaitu mengurutkan secara manual semua direktori yang ingin Anda copy.

    Hanya pada cara ini, seandainya terdapat beberapa file di dalam direktori root sendiri maka Anda memerlukan perintah lain untuk meng-copy-kannya. Secara khusus, perintah ini dibutuhkan pada Debian dan Slackware oleh karena distribusi-distribusi tadi menempatkan beberapa file di dalam direktori root.

    cp -dp /* /.* /new-disk
    

    Sesudah Anda menggunakan salah satu dari cara diatas, Anda harus membuat direktori /proc di dalam disk yang baru tadi:

    mkdir /new-disk /proc
    

    Pada tahap ini, jika Anda menginginkannya, Anda dapat melakukan verifikasi terhadap struktur file yang terdapat di dalam disk baru:

    umount /new-disk
    fsck.ext2 -f /dev/hdb1
    mount -t ext2 /dev/hdb1 /new-disk
    

    Andapun dapat pula menggunakan script berikut untuk membandingkan kedua disk tadi, untuk memastikan bahwa semua file telah di-copy-kan secara sempurna:

    #!/bin/sh
    cd /
    for   file   in    `/bin/ls   -1A | egrep   -v    '^new-disk$|^proc$'`
    do
        find   $file   -xtype   f   -exec   cmp \{\}   /new-disk/\{\} \;
    done
    

    (Hanya bagi distribusi Slackware: Instalasi dasar dari Slackware tidak memasukkan perintah-perintah "cmp" ataupun "diff", sehingga Anda tidak akan dapat menjalankan script ini apabila Anda hanya memiliki file-file dasar.)

    Script tadi hanya akan membandingkan file-file reguler; namun tidak akan membandingkan file-file spesial seperti character special file, block special file (yang terdapat di dalam direktori /dev) ataupun socket, dsb oleh karena perintah "cmp" tidak akan bekerja secara baik dengan file-file spesial tadi. Penulis akan menerima saran-saran mengenai cara untuk memverifikasi file-file "special" tadi.


Next Previous Contents