it-swarm-id.com

Bagaimana cara memindahkan / usr ke partisi baru?

Folder /usr saya perlu dipindahkan ke partisi baru. Bagaimana saya bisa melakukan ini tanpa menghapus isinya?

Apakah ini dapat dilakukan saat Ubuntu sedang berjalan, atau apakah saya perlu menggunakan LiveCD untuk ini?

24
Nathan Osman

Akan lebih aman menggunakan Live CD, tetapi Anda bisa melakukannya:

  • salin semua file ke partisi baru, pastikan konten /usr tidak berubah saat Anda melakukan ini.
  • edit /etc/fstab sehingga /usr akan dipasang pada reboot berikutnya
  • reboot
  • hapus file-file lama

Lihat di bawah untuk detail pada setiap langkah.

Perhatikan bahwa Anda tidak dapat me-mount partisi baru di /usr saat berjalan karena akan ada banyak file di /usr yang akan terbuka.

Menyalin file

Saya akan menggunakan cp -a. -a adalah opsi arsip. Dari halaman manual :

-a, --archive
          same as -dR --preserve=all
...
-d     same as --no-dereference --preserve=links
...
-P, --no-dereference
          never follow symbolic links in SOURCE
...
--preserve[=ATTR_LIST]
          preserve      the      specified      attributes       (default:
          mode,ownership,timestamps),  if  possible additional attributes:
          context, links, xattr, all
...
-R, -r, --recursive
          copy directories recursively

Mengedit/etc/fstab

Anda perlu mengetahui UUID dari partisi baru Anda. Anda dapat melihat pemetaan dengan melakukan:

$ ls -l /dev/disk/by-uuid/

Dan kemudian tambahkan baris ini ke /etc/fstab:

UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2

Ubah UUID menjadi UUID Anda, dan ubah ext4 menjadi tipe sistem file yang Anda gunakan - Anda harus mengetahui hal ini jika telah menyiapkan partisi.

Hapus file lama

Setelah reboot, file-file lama di /usr pada partisi root akan disembunyikan oleh partisi baru yang dipasang pada /usr. Tetapi kita dapat menggunakan beberapa mount bind trickery untuk menuju ke file lama dan kemudian menghapusnya.

$ Sudo mount --bind / /mnt
$ Sudo rm -rf /mnt/usr/*
$ Sudo umount /mnt

Tetapi sedikit kesalahan ketik (misalnya, menekan Enter ketika Anda hanya mengetik Sudo rm -rf /mnt) dapat menyebabkan bencana, jadi saya hanya akan menggunakan metode ini jika Anda sangat percaya diri dengan apa yang Anda lakukan, benar-benar tidak dapat menangani downtime, atau memiliki tidak ada akses fisik ke mesin dan karenanya tidak dapat mem-boot CD langsung atau USB stick langsung.

25
Hamish Downer

Karena sebagian besar pustaka yang digunakan berada di/usr, saya tidak akan merekomendasikan untuk memindahkan direktori ini saat menjalankan Ubuntu. Bahkan, Anda mungkin mendapatkan pesan kesalahan ketika Anda mencoba melakukan ini. Karenanya, yang terbaik adalah menggunakan LiveCD.

Anda dapat menggunakan beberapa kemungkinan untuk memindahkan/menyalin file cp, rsync dll. Anda ingin memastikan bahwa semua symlink dibuat dan tidak hanya disalin. cp dan rsync keduanya memiliki opsi untuk ini.

Setelah memindahkan file ke partisi lain, Anda perlu menambahkan mount lain di/etc/fstab untuk me-mount partisi baru ke/usr.

7
txwikinger

Perhatian: Saya tidak tahu apa yang saya lakukan, saya hanya menyalin perintah dan melakukan seperti yang disarankan oleh yang lain. Ini mungkin cara yang salah untuk melakukannya, tetapi itu bekerja untuk saya (untuk saat ini, setidaknya).

Beginilah cara saya melakukannya (mengikuti jawaban Hamish dan komentarnya):

  1. Salin semua file partisi yang baru dibuat (ganti dengan lokasi partisi Anda, seharusnya terlihat seperti milik saya):

    rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c 
    
  2. Pada titik ini saya menyadari bahwa ini menyalin semuanya ke folder /usr pada partisi, yang tidak akan berfungsi, jadi saya menyalin semuanya (dengan file manager) dari folder itu ke root partisi, dan folder kosong yang dihapus sesudahnya.

  3. Edit /etc/fstab (sama seperti dalam jawaban Hamish, tentu saja, ganti dengan UUID Anda)

    UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr           ext4    defaults        0       2
    
  4. Langkah yang ternyata tidak terlalu bijak: Saya mengubah nama partisi /usr yang saat ini di-mount menjadi /usrBACKUP, hanya supaya saya tahu bahwa, ketika saya reboot sistem, sebenarnya reboot ke partisi yang baru dibuat, dan bukan yang lama. Setelah itu, semuanya bermasalah di layar, dan saya harus mematikannya dengan menekan lama tombol daya (genius seperti saya). Lewati langkah ini jika Anda tidak ingin memperbaiki sistem Anda.

  5. Mulai ulang sistem

  6. Setelah reboot, buka System Monitor atau aplikasi serupa untuk melihat apakah partisi /usr baru Anda sudah di-mount, dan untuk memeriksa apakah semuanya berjalan sesuai rencana.

  7. Setelah memeriksa apakah semuanya baik-baik saja, Anda dapat menghapus partisi /usr lama Anda. Aku akan menyimpan milikku kalau-kalau ada yang salah.