Mempartisi dan menyalin file - saat berjalan
Saya melakukan ini dengan mulai dengan sistem yang sedang berjalan. Saya menancapkan SSD baru ke adaptor USB SATA dan mempartisinya, mengatur LVM dan menyalin file.
# confirm disk size is as expected for sdc
sudo fdisk -l /dev/sdc
# now partition - 500 MB partition as boot, the rest as a single (logical) partition
sudo cfdisk /dev/sdc
Disk Anda sekarang akan terlihat seperti:
sudo fdisk -l /dev/sdc
Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 * 63 979964 489951 83 Linux
/dev/sda2 979965 234441647 116730841+ 5 Extended
/dev/sda5 980028 234441647 116730810 82 Linux swap / Solaris
Langkah selanjutnya adalah meletakkan enkripsi pada partisi dan LVM di atas enkripsi.
sudo cryptsetup -y luksFormat /dev/sdc5
sudo cryptsetup luksOpen /dev/sdc5 crypt
sudo vgcreate crypt-lvm /dev/mapper/crypt
sudo lvcreate -L4G -nswap crypt-lvm
sudo lvcreate -l100%FREE -nroot crypt-lvm
Sekarang buat filesystem dan mount mereka dan salin sistem Anda.
sudo mkfs.ext2 /dev/sdc1
# you do ls /dev/mapper to check the name if different
sudo mkfs.ext4 /dev/mapper/crypt-root
sudo mkdir /mnt/boot
sudo mkdir /mnt/root
sudo mount -t ext2 /dev/sdc1 /mnt/boot
sudo mount -t ext4 /dev/mapper/crypt-root /mnt/root
# rsync files
sudo rsync -a /boot/* /mnt/boot/
sudo rsync -aHAX --devices --specials --delete --one-file-system --exclude proc --exclude run --exclude boot --exclude sys --exclude tmp /* /mnt/root/
Hingga saat ini Anda dapat menjaga sistem tetap berjalan dan menggunakannya. Sekarang Anda perlu mematikan dan boot ke live CD / USB sehingga Anda bisa mendapatkan sistem dalam keadaan shutdown.
Mempartisi dan menyalin file - live CD / USB
Setelah Anda mem-boot, buka terminal dan:
sudo apt-get install lvm2
# mount old hard drive
sudo cryptsetup luksOpen /dev/sda5 sda5_crypt
sudo mkdir /mnt/sdaroot
# you can do ls /dev/mapper to check the name if it is different
sudo mount -t ext4 /dev/mapper/sda5_crypt--root /mnt/sdaroot
# mount new hard drive (over USB)
sudo cryptsetup luksOpen /dev/sdc5 sdc5_crypt
sudo mkdir /mnt/sdcroot
sudo mount -t ext4 /dev/mapper/sdc5_crypt--root /mnt/sdcroot
# final rsync
sudo rsync -aHAX --devices --specials --delete --one-file-system --exclude proc --exclude run --exclude boot --exclude sys --exclude tmp /mnt/sdaroot/* /mnt/sdcroot/
chroot
# prepare chroot
cd /mnt/sdcroot
sudo mkdir boot
# these directories are set up by the system and we need them inside the chroot
sudo mount -t proc proc /mnt/sdcroot/proc
sudo mount -t sysfs sys /mnt/sdcroot/sys
sudo mount -o bind /dev /mnt/sdcroot/dev
# now enter the chroot
sudo chroot /mnt/root/
Mengubah UUID
Sekarang kita root di dalam chroot dan jalankan perintah berikut:
# inside chroot, as root
mount -t ext2 /dev/sdc1 /boot
blkid
Sekarang Anda akan melihat semua UUID untuk berbagai disk di sistem. Anda perlu mengedit UUID /etc/fstab
dan /etc/crypttab
mencocokkan nilai untuk/dev/sdc?
Di dalam /etc/fstab
Anda perlu menggunakan UUID untuk disk boot - /dev/sdc1
jika disk Anda memiliki huruf yang sama dengan saya.
Dalam /etc/crypttab
Anda perlu menggunakan UUID untuk partisi lain (besar) - /dev/sdc5
jika disk Anda memiliki surat yang sama seperti saya.
initramfs dan grub
# now update initramfs for all installed kernels
update-initramfs -u -k all
# install grub and ensure it is up to date
grub-install /dev/sdc # NOTE sdc NOT sdc1
update-grub
# hit Ctrl-D to exit chroot
sudo umount /mnt/root
Sekarang shutdown, masukkan SSD ke dalam laptop Anda, silangkan jari Anda dan boot.
Tautan yang bermanfaat
Panduan bagus untuk hal-hal cryptsetup di http://www.debian-administration.org/articles/577
Untuk menginstal grub pada partisi eksternal: /programming/247030/how-to-set-up-up-grub-in-a-cloned-hard-disk
https://help.ubuntu.com/community/UsingUUID
sudo mount -t proc proc /mnt/sdcroot/proc
sudo mount -t sysfs sys /mnt/sdcroot/sys
sudo mount -o bind /dev /mnt/sdcroot/dev
sebelumnya lakukan:sudo mkdir /mnt/sdcroot/proc
sudo mkdir /mnt/sdcroot/sys
--- Dalam kasus saya, perintah untuk membuat initramfs tidak berfungsi, karena versi kernel tidak cocok dan initramfs tidak bisa temukan kernel yang tepat di / boot, jadi saya tidak bisa menyelesaikan semuanya.Saya mencoba berkomentar, tetapi saya tidak memiliki reputasi :-)
Bagaimanapun, saya berhasil menggunakan panduan luar biasa oleh Hamish untuk bermigrasi ke ssd di laptop kerja terenkripsi luks berbasis linux saya. Hanya beberapa komentar:
1. Setelah membuat swap lv juga gunakan
untuk menginisialisasi swap, jika tidak gagal saat boot, seperti yang ditunjukkan dalam komentar di atas.
2.
rsync
Perintah itu terlalu ketat. Ketika saya menggunakannya--exclude run
, saya bertemu dengan semua jenis alat aneh yang umumnya tidak terlihat oleh kesalahan internet. Proses harus dimasukkan . Sistem ini tetap kosong saat boot ke mode pemeliharaan, sehingga bisa tetap ada. Juga jika Anda mengecualikan tmp, yang baru dibuat pada target / tmp dan / var / tmp tidak mendapatkan bit yang lengket - jangan lupa untuk mengaturnya sendiri. Saya akhirnya menggunakan sesuatu sepertiSecara keseluruhan - panduan hebat, menunjukkan ikhtisar proses secara akurat! Mengajari Anda cara memancing, bisa dikatakan!
sumber
[Tidak dapat memberikan komentar, meskipun postingan ini memiliki komentar dan bukan pada jawaban]
Dengan menggunakan metode ini, Anda juga dapat memindahkan instalasi lvm terenkripsi ** non - ** yang ada ke instalasi lvm terenkripsi pada disk baru; Anda hanya perlu langkah-langkah tambahan (untuk menginstal cryptsetup saat chroot'ed ke disk target), sebagaimana disebutkan di http://blog.andreas-haerter.com/2011/06/18/ubuntu-full-disk-encryption-lvm -luks , khususnya:
Perintah di atas juga menginstal lvm2 pada disk target, meskipun itu tidak perlu, itu akan berguna jika Anda memindahkan sistem non-lvm ke sistem lvm di SSD Anda, menggunakan Live CD / DVD. Perhatikan bahwa Anda juga perlu menyalin melalui /etc/resolve.conf ke chroot Anda agar Anda dapat menjalankan apt-get install dengan sukses: disebutkan di URL yang dirujuk di atas, bagian kode:
sudo cp /etc/resolv.conf /mnt/sdcroot/etc/resolv.conf
Juga, lebih mudah untuk melakukan cp (menggunakan instalasi yang berbeda (bukan dari dalam instalasi sumber yang), misalnya, CD / DVD langsung) daripada rsync untuk partisi /, seperti yang dijelaskan pada Cara memindahkan Ubuntu ke SSD
Anda mungkin juga harus membuat swap menggunakan
mkswap
di/dev/mapper/<swap-name-here>
partisi Anda .Seharusnya juga mengaktifkan dukungan TRIM pada saat yang sama, sebagaimana disebutkan di http://www.webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html
PERINGATAN: Teks lebih lanjut di bawah ini bukan untuk mereka yang menggunakan MBR, yang sepertinya berkaitan dengan topik / utas ini. Saya menemukan ini berguna, jadi saya memposting untuk kepentingan mereka yang dapat menyesuaikan instruksi di utas / topik ini ke disk GPT mereka.
Dan bagi mereka yang menggunakan GPT bukan MBR (menggunakan parted / gparted dan gdisk bukan fdisk), saya belajar dengan cara yang sulit bahwa partisi / boot Anda (yang tidak dienkripsi) tidak boleh diberi nomor setelah perangkat luks Anda dalam urutan GPT. Karena saya telah membuat partisi ESP setelah membuat partisi / boot dan perangkat luks menggunakan gparted, saya kemudian harus mengurutkan nomor partisi sehingga / boot masih bernomor lebih sedikit daripada perangkat luks.
Sebagai tambahan dan tidak terkait dengan tulisan ini, mereka yang menggunakan GPT dan UEFI dengan rEFInd, rEFInd mungkin memiliki masalah dalam memberikan Anda daftar partisi untuk di-boot dari jika Anda memiliki beberapa ESP di sistem Anda, saya memiliki satu per disk, jadi alih-alih saya memiliki satu ESP di sistem Anda, menggunakan rEFInd, saya menggunakan grub, yang berfungsi dengan baik.
sumber
Sebelum bagian initramfs dan grub Anda mungkin perlu:
sumber
Agak terlambat, tetapi Anda harus memperbarui /etc/initramfs-tools/conf.d/resume file untuk mencerminkan modifikasi swap. Tanpa modifikasi ini Anda akan merusak fungsi hibernasi.
sumber