Bagaimana saya bisa menyimpan / var di partisi yang terpisah?

13

Saya ingin menyimpan /vardi partisi terpisah /. Apa cara yang benar untuk mengatur ini?

ændrük
sumber

Jawaban:

17

Pertama, siapkan partisi baru (mis. Dengan parteddan mkfs).

Katakanlah partisi tersebut adalah / dev / sda5

Pasang partisi baru:

mkdir /var2
mount /dev/sda5 /var2

Sinkronkan var Anda saat ini:

rsync -a /var/ /var2

Tambahkan entri ke / etc / fstab

/dev/sda5    /var    ext4    defaults      2 2

Mulai ulang.

Jika Anda perlu mengembalikan Anda lama / var Anda hanya berkomentar entri di fstab.

Aleksandr Levchuk
sumber
1
Saya akan menambahkan beberapa informasi untuk memulihkan ruang pada yang lama /var: mulai dari livecd, mount partisi pada sistem yang terinstal /dan rm -rf /var/*.
enzotib
1
Poin yang bagus. Atau Anda dapat me-mount /ke beberapa lokasi lain di sistem saat ini sedang berjalan (tetapi setelah reboot). Kemudian Anda bisa mendapatkan yang lama /vardan menghapusnya jika Anda mau
Aleksandr Levchuk
1
Saya dulu juga bertanya-tanya tentang itu. Yang pertama adalah sesuatu yang benar-benar kuno dan tanpa efek, yang kedua mengontrol urutan fsck ketika saatnya untuk memindai ext Anda saat boot. Saya tidak memperhatikan mereka lagi. Masukkan saja 1 1 karena sintaks memerlukannya.
Aleksandr Levchuk
2
Anda harus meletakkan 2 2 untuk membiarkan hal-hal seperti / dapatkan fsck memindai sebelum / var ketika Anda me-reboot waktu ke-30. Kalau tidak, jika / var gagal dan meminta Anda untuk memperbaiki hal-hal secara manual dalam satu shell pengguna - maka Anda tidak akan memiliki sistem file. Hal menyenangkan.
Aleksandr Levchuk
2
Bukankah rekomendasi untuk menggunakan UUID di fstab? Saya punya yang tepat menggunakan blkid -o list -s UUID, tapi saya pikir Anda perlu menjalankan dengan sudo
steevc
2

Mengkonfigurasi partisi / var baru di server virtual

Ketika saya mengambil alih server virtual baru yang telah disediakan oleh perusahaan hosting perusahaan saya, tidak ada cukup ruang kosong di sistem file root. Untungnya, mereka telah menggunakan Logical Volume Manager (LVM) untuk membagi disk virtual dan ada ruang kosong yang cukup untuk membuat volume baru. Saya membuat volume ekstra logis untuk vardan homeyang merupakan direktori reguler di sistem file root. Karena penyedia server virtual tidak menyediakan antarmuka seperti KVM di mana saya dapat mengakses server dalam mode pengguna tunggal, saya menggunakan metode yang sangat mirip dengan yang diuraikan oleh Aleksander (jawaban ini mencakup detail tambahan untuk memulihkan ruang disk di tambahan untuk perintah khusus LVM).

Buat sistem file / var baru dengan LVM

Buat volume logis untuk varsistem file baru , pasang (menggunakan direktori sementara) dan salin file dari saat ini /varke sistem file baru:

# Create a new 60GB logical volume in the `VolGroup00` group called `var`.
sudo lvcreate -L 60GB -n var VolGroup00
# Create an ext4 filesystem on this new `var` volume.
sudo mkfs.ext4 /dev/VolGroup00/var
# Mount this filesystem at a temporary mount-point.
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new

Karena proses yang sedang berjalan akan memiliki file /vartetap terbuka dan digunakan, pohon direktori tidak bisa begitu saja dipindahkan ke sistem file yang baru. Secara rekursif ( -r) menyalin file dari /varpartisi saat ini ke sistem file baru sambil mempertahankan atribut file dan atribut diperluas ( -a, --archiveopsi). Seorang pengguna yang berhati-hati mungkin pertama kali membuat snapshot LVM dari volume saat ini sebelum menyalin tetapi itu terlalu banyak detail di luar topik untuk pertanyaan ini.

sudo cp -ra /var/ /var.new/

Atau, file-file tersebut dapat disalin dengan rsync, dengan -a, --archiveopsi untuk menyimpan stempel waktu, kepemilikan, mode, dll. Dan -X, --xattrsopsi untuk mempertahankan atribut yang diperluas seperti label keamanan yang digunakan oleh AppArmor dan SELinux:

sudo rsync -raX /var/ /var.new/

Perbarui tabel sistem file

Konfigurasikan sistem file baru untuk digunakan sebagai titik-mount baru /vardengan menambahkan baris berikut ke /etc/fstab. Catatan yang 0digunakan sebagai nomor pass (bidang terakhir) sehingga sistem file tidak akan secara otomatis diperiksa ( fsck) setelah sejumlah reboot.

/dev/mapper/VolGroup00-var    /var    ext4  defaults  0 0

Karena mengubah ke mode pengguna tunggal tidak dimungkinkan, reboot komputer untuk menggunakan volume baru ini sebagai /var.

Hapus titik pemasangan sementara

Setelah mesin dinyalakan kembali, sistem file baru akan dipasang /varsehingga titik pemasangan sementara dapat dihapus dengan aman:

sudo rmdir /var.new

Pulihkan ruang disk dari sistem file root

File- /varfile lama masih akan memakan ruang di partisi root tetapi mereka tidak dapat diakses dengan mudah saat sistem file lain di-mount /var(mereka "ditutup-tutupi" oleh sistem file baru menggunakan /vardirektori sebagai mount-point-nya). Gunakan titik-mount sementara untuk memasang sistem file root sehingga isi dari /vardirektori asli tersedia oleh jalur alternatif.

    sudo mkdir /old-root
    sudo mount /dev/mapper/VolGroup00-root /old-root/
    sudo rm -rf /old-root/var/*
    sudo umount /old-root/
    sudo rmdir /old-root/
Anthony Geoghegan
sumber
Penjelasan bagus tentang opsi yang terlibat. Namun, Anda menggunakan lvcreatedan mkfs.ext4tanpa menjelaskan apa yang digunakan atau mengapa digunakan. Mungkin Anda bisa mengatakan itu untuk membuat partisi baru karena mereka bukan topik utama jawabannya.
PhoneixS
Terima kasih atas umpan balik @PhoneixS. Saya telah mengedit jawaban untuk membuatnya lebih jelas dan memberikan informasi kontekstual tambahan.
Anthony Geoghegan