Tôi đang chạy kernel 3.18.9 được biên dịch tùy chỉnh và tôi đang tự hỏi về cách tốt nhất để vô hiệu hóa trao đổi trên hệ thống. Tôi cũng sử dụng init nếu nó tạo ra sự khác biệt.
Có đủ để nhận xét hoặc xóa dòng trao đổi trong /etc/fstab
Để ngăn trao đổi hoạt động/gắn khi khởi động hay tôi nên biên dịch lại kernel mà không có Support for paging of anonymous memory (swap)
để chắc chắn 100% không được kích hoạt ?
Tôi chạy các phân vùng được mã hóa và muốn ngăn chặn sự cố rò rỉ vào đĩa cứng. Thông số kỹ thuật hệ thống của tôi cũng đủ lớn để tôi có thể tồn tại trong môi trường không có trao đổi.
cat /proc/swaps
.swapoff -a
./etc/fstab
.Nếu bạn thực sự chắc chắn rằng bạn muốn tắt tính năng hoán đổi (lưu ý: đây là không nên , ngay cả khi bạn khá chắc chắn rằng vật lý RAM là quá đủ), hãy làm theo các bước sau:
swapoff -a
: điều này sẽ ngay lập tức vô hiệu hóa trao đổi/etc/fstab
reboot
hệ thống. Nếu trao đổi không còn, tốt. Nếu vì lý do nào đó, nó vẫn ở đây, bạn phải xóa phân vùng trao đổi. Lặp lại các bước 1 và 2 và sau đó, sử dụng fdisk
hoặc parted
để xóa phân vùng trao đổi (hiện không được sử dụng). Hãy hết sức cẩn thận tại đây: xóa phân vùng sai sẽ gây ra hậu quả tai hại!reboot
Nó được sử dụng để chỉ trao đổi phân vùng trong /etc/fstab
đã được sử dụng tự động, tuy nhiên, systemd có thể thay đổi một chút. Bạn có thể cần phải làm:
systemctl mask dev-sdXX.swap
(thay đổi sdXX) thành phân vùng trao đổi được định dạng thực của bạn, điều này đặt ra câu hỏi tại sao bạn có phân vùng trao đổi nếu bạn không muốn sử dụng ...
Nếu bạn không sử dụng systemd, sau đó, xóa các mục trao đổi khỏi /etc/fstab
nên là đủ (theo như tôi biết).
Có lẽ giải pháp thực sự là loại bỏ các phân vùng trao đổi, vì vậy chúng sẽ không được sử dụng một cách tình cờ. Để xóa phân vùng trao đổi, tôi sẽ sử dụng fdisk để thay đổi loại phân vùng từ hoán đổi sang thứ khác, sau đó định dạng lại phân vùng hoặc sử dụng: dd if=/dev/zero of=/dev/old-swap-partition
để loại bỏ nó ra và ngăn chặn việc sử dụng nó.
Vào Raspbian 1 (Buster), câu trả lời sạch sẽ là:
Để vô hiệu hóa nó cho đến lần khởi động lại tiếp theo , như đã nêu trong */etc/fstab*
:
Sudo /sbin/dphys-swapfile swapoff
Để tắt trao đổi khi khởi động:
Sudo systemctl disable dphys-swapfile
(Hóa ra tôi không thể tìm thấy thông tin đó ở bất cứ đâu ...)
Trên hộp Linux Mint của tôi (phiên bản 19.3 (Tricia), dựa trên buntu 18.04 (Bionic Beaver)) mà không có phân vùng trao đổi hoặc không có bất kỳ trao đổi nào cả, systemctl đã báo cáo rằng hoán đổi .swap thất bại trong mỗi lần bắt đầu. Nó có thể bị vô hiệu hóa bằng lệnh:
Sudo systemctl disable swapfile.swap
Exchangefile.swap là một phần 'đặc biệt' của systemd, bạn có thể đọc về con người, sử dụng man systemd.special
chỉ huy.
Khi tôi xem tệp / etc/fstab trên Raspbian, tôi thấy một bình luận nói rằng
a swapfile is not a swap partition, no line here
use dphys-swapfile swap[on|off] for that
Nhưng để vô hiệu hóa hoàn toàn tệp hoán đổi cấu hình sẵn, nó hoạt động hoàn toàn tốt:
swapoff -a
chmod -x /etc/init.d/dphys-swapfile
reboot
Giải pháp này có vẻ hơi nhanh và bẩn đối với tôi, tuy nhiên, bạn chỉ có thể kích hoạt nó bằng:
chmod +x /etc/init.d/dphys-swapfile
reboot