/usr
Folder 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?
/usr
Folder 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?
Jawaban:
Akan lebih aman menggunakan Live CD, tetapi Anda bisa melakukannya:
/usr
tidak berubah saat Anda melakukan ini./etc/fstab
sehingga /usr
akan dipasang pada reboot berikutnyaLihat di bawah untuk detail pada setiap langkah.
Perhatikan bahwa Anda tidak dapat memasang partisi baru /usr
saat menjalankan karena akan ada banyak file di dalamnya /usr
yang akan terbuka.
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
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.
Setelah reboot, file lama di /usr
partisi root akan disembunyikan oleh partisi baru yang terpasang /usr
. Tapi kita bisa menggunakan beberapa tipuan mount bind untuk mendapatkan file-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 tidak memiliki akses fisik ke mesin dan karenanya tidak dapat mem-boot CD langsung atau stik USB langsung.
rsync
bukan?
rsync -avz
. Rsync memungkinkan Anda untuk memulai kembali salinan dan umumnya harus digunakan saat berpindah antar partisi, memblokir perangkat, atau mesin.
cp
. Itu tidak menyimpan KERAS KERAS. Ini akan merusak pembaruan paket di masa mendatang. Misalnya /usr/bin/s2p
dan /usr/bin/psed
file yang sama. Pindah dengan cp
akan membuat 2 versi independen file itu. Lakukan rsync -aH
sebaliknya.
rsync -avH a/ b
berbeda dari rsync -avH a b
, menyalin isi folder a
(yaitu, a/*
) dalam kasus pertama dan folder itu sendiri di yang kedua. Pastikan Anda menggunakan garis miring di sini.
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.
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):
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
Pada titik ini saya menyadari bahwa ini menyalin semua ke /usr
folder pada partisi, yang tidak akan berfungsi , jadi saya menyalin semuanya (dengan manajer file) dari folder itu ke root partisi, dan yang dihapus itu kosong folder sesudahnya.
Sunting /etc/fstab
(sama seperti dalam jawaban Hamish, tentu saja, ganti dengan UUID Anda)
UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr ext4 defaults 0 2
Langkah yang ternyata tidak terlalu bijak: Saya mengubah nama /usr
partisi yang saat ini dipasang /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.
Mulai ulang sistem
Setelah reboot, buka System Monitor atau aplikasi serupa untuk melihat apakah /usr
partisi baru Anda sudah terpasang, dan untuk memeriksa apakah semuanya berjalan sesuai rencana.
Setelah memeriksa apakah semuanya baik-baik saja, Anda dapat menghapus /usr
partisi lama Anda . Aku akan menyimpan milikku untuk berjaga-jaga kalau-kalau terjadi kesalahan.
sudo mount -a
membiarkannya terus berjalan?
rsync
jauh lebih cocok untuk ini daripadacp