Làm cách nào tôi có thể lưu trữ / var trên một phân vùng riêng?


13

Tôi muốn lưu trữ /vartrên một phân vùng riêng biệt từ /. Cách chính xác để thiết lập này là gì?

Câu trả lời:


17

Đầu tiên chuẩn bị một phân vùng mới (ví dụ với partedmkfs).

Nói phân vùng là / dev / sda5

Gắn kết phân vùng mới:

mkdir /var2
mount /dev/sda5 /var2

Đồng bộ hóa var hiện tại của bạn:

rsync -a /var/ /var2

Thêm mục vào / etc / fstab

/dev/sda5    /var    ext4    defaults      2 2

Khởi động lại.

Nếu bạn tình cờ cần quay lại với bạn / var cũ của bạn, chỉ cần bình luận ra mục trong fstab.


1
Tôi sẽ thêm một số thông tin để phục hồi không gian trên cái cũ /var: bắt đầu từ một livecd, gắn kết phân vùng trên hệ thống đã cài đặt /rm -rf /var/*.
enzotib

1
Điểm tốt. Hoặc bạn có thể gắn kết /với một số vị trí khác trên hệ thống hiện tại trong khi nó đang chạy (nhưng sau khi khởi động lại). Sau đó, bạn có thể lấy cái cũ /varvà xóa nó nếu bạn thích
Aleksandr Levchuk

1
Tôi đã từng tự hỏi về những điều đó quá. Cái đầu tiên là thứ gì đó thực sự cổ xưa và ít hiệu quả, cái thứ hai kiểm soát thứ tự của fsck khi đến lúc quét ext của bạn trong khi khởi động. Tôi không chú ý đến họ nữa. Chỉ cần đặt 1 1 vì cú pháp yêu cầu nó.
Alexanderr Levchuk

2
Bạn nên đặt 2 2 để cho phép những thứ như / nhận quét fsck trước / var khi bạn khởi động lại lần thứ 30. Mặt khác, nếu / var không thành công và yêu cầu bạn sửa mọi thứ theo cách thủ công trong một vỏ người dùng - thì bạn sẽ không có bất kỳ hệ thống tệp nào. Công cụ thú vị.
Alexanderr Levchuk

2
Không phải là khuyến nghị sử dụng UUID trong fstab sao? Tôi đã sử dụng một cái thích hợp bằng cách sử dụng blkid -o list -s UUID, nhưng tôi nghĩ bạn cần chạy với sudo
steevc

2

Định cấu hình phân vùng mới / var trên máy chủ ảo

Khi tôi tiếp quản một máy chủ ảo mới được cung cấp bởi công ty lưu trữ của chủ nhân của tôi, không có đủ không gian trống trong hệ thống tập tin gốc. May mắn thay, họ đã sử dụng Trình quản lý khối tin hợp lý (LVM) để phân chia đĩa ảo và có đủ không gian trống để tạo các ổ đĩa mới. Tôi đã tạo thêm khối lượng logic cho varhomeđó là các thư mục thông thường trong hệ thống tập tin gốc. Vì nhà cung cấp máy chủ ảo không cung cấp giao diện giống như KVM mà tôi có thể truy cập máy chủ ở chế độ một người dùng, tôi đã sử dụng một phương pháp rất giống với phương pháp được Aleksander nêu ra (câu trả lời này bao gồm các chi tiết bổ sung để phục hồi không gian đĩa trong ngoài các lệnh dành riêng cho LVM).

Tạo một hệ thống tập tin / var mới với LVM

Tạo một khối hợp lý cho varhệ thống tệp mới , gắn kết nó (sử dụng một thư mục tạm thời) và sao chép các tệp từ hiện tại /varsang hệ thống tệp mới:

# 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

Vì các tiến trình đang chạy sẽ có các tệp /varđược giữ mở và sử dụng, nên cây thư mục không thể được chuyển sang hệ thống tệp mới. Đệ quy ( -r) sao chép các tệp từ /varphân vùng hiện tại sang hệ thống tệp mới trong khi bảo toàn các thuộc tính tệp và thuộc tính mở rộng ( -a, --archivetùy chọn). Người dùng thận trọng trước tiên có thể tạo ảnh chụp nhanh LVM của âm lượng hiện tại trước khi sao chép nhưng đó là quá nhiều chi tiết ngoài chủ đề cho câu hỏi này.

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

Ngoài ra, các tệp có thể được sao chép cùng rsyncvới -a, --archivetùy chọn lưu giữ dấu thời gian, quyền sở hữu, chế độ, v.v. và -X, --xattrstùy chọn của nó để bảo toàn các thuộc tính mở rộng như nhãn bảo mật được sử dụng bởi AppArmor và SELinux:

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

Cập nhật bảng hệ thống tập tin

Định cấu hình hệ thống tệp mới sẽ được sử dụng làm điểm gắn kết mới /varbằng cách thêm dòng sau vào /etc/fstab. Lưu ý rằng 0được sử dụng làm số vượt qua (trường cuối cùng) để hệ thống tập tin sẽ không được kiểm tra tự động ( fsck) sau một số lần khởi động lại nhất định.

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

Vì không thể thay đổi chế độ người dùng đơn, hãy khởi động lại máy tính để sử dụng âm lượng mới này /var.

Xóa điểm gắn kết tạm thời

Sau khi máy đã khởi động lại, hệ thống tập tin mới sẽ được gắn vào /varđể điểm gắn kết tạm thời có thể được gỡ bỏ an toàn:

sudo rmdir /var.new

Khôi phục không gian đĩa từ hệ thống tập tin gốc

Các /vartệp cũ vẫn sẽ chiếm dung lượng trên phân vùng gốc nhưng chúng không thể truy cập dễ dàng trong khi hệ thống tệp khác được gắn vào /var(chúng được che dấu bởi hệ thống tệp mới sử dụng /varthư mục làm điểm gắn kết của nó). Sử dụng một điểm gắn kết tạm thời để gắn kết hệ thống tập tin gốc để nội dung của /varthư mục gốc có sẵn bằng một đường dẫn khác.

    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/

Giải thích tốt đẹp của các lựa chọn liên quan. Tuy nhiên, bạn sử dụng lvcreatemkfs.ext4không giải thích những gì hoặc tại sao được sử dụng. Có lẽ bạn chỉ có thể nói rằng đó là để tạo phân vùng mới vì chúng không phải là chủ đề chính của câu trả lời.
PhoneixS

Cảm ơn phản hồi @PhoneixS Tôi đã chỉnh sửa câu trả lời để làm cho nó rõ ràng hơn và cung cấp thêm thông tin theo ngữ cảnh.
Anthony Geoghegan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.