Câu trả lời:
Đầu tiên chuẩn bị một phân vùng mới (ví dụ với parted
và mkfs
).
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.
/
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ũ /var
và xóa nó nếu bạn thích
blkid -o list -s UUID
, nhưng tôi nghĩ bạn cần chạy với sudo
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 var
và home
đó 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 khối hợp lý cho var
hệ 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 /var
sang 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ừ /var
phâ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, --archive
tù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 rsync
với -a, --archive
tùy chọn lưu giữ dấu thời gian, quyền sở hữu, chế độ, v.v. và -X, --xattrs
tù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/
Đị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 /var
bằ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
.
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
Các /var
tệ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 /var
thư 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 /var
thư 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/
lvcreate
và mkfs.ext4
khô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.
/var
: bắt đầu từ một livecd, gắn kết phân vùng trên hệ thống đã cài đặt/
vàrm -rf /var/*
.