Ramdisk trên 10.04


12

Tôi đang sử dụng Ubuntu 10.04 (64 bit) cho máy tính để bàn của mình.
Máy có RAM 5GB.

Tôi muốn sử dụng đĩa RAM (1G hoặc 2G) nhưng tôi không biết làm thế nào tôi có thể làm điều này.

Có bất kỳ sản phẩm mã nguồn mở của đĩa RAM?

Câu trả lời:


18

Công nghệ được tích hợp vào kernel, bạn không cần thêm bất kỳ công cụ nào. Trên thực tế, bạn đã có một vài đĩa RAM (mà bạn không nên sử dụng, chúng được dành riêng cho hệ thống), mà bạn có thể thấy bằng cách thực hiện

grep -w tmpfs /proc/mounts

Để thiết lập đĩa RAM 2GB được gắn trên /ramdisk, hãy thêm dòng sau vào /etc/fstab:

ramdisk  /ramdisk  tmpfs  mode=1777,size=2g

Sau đó gắn đĩa bằng lệnh mount /ramdisk(điều này sẽ được thực hiện tự động khi bạn khởi động lại).

Kích thước được chỉ định là tối đa, đĩa chỉ sử dụng nhiều bộ nhớ như các tệp trên đó.


Bạn có thể thay đổi /tmpthành một đĩa RAM. Trong /etc/fstabdòng trên, đặt /tmpthay vì /ramdisk, sau đó khởi động lại.

Lần đầu tiên bạn khởi động lại sau khi thay đổi /tmpthành đĩa RAM, các tệp trong đó /tmpsẽ bị ẩn. Điều đó vô hại, ngoại trừ việc họ lãng phí một ít dung lượng đĩa. Bạn có thể dọn sạch chúng ( sau khi bạn khởi động lại /tmptrên đĩa RAM) bằng cách thực hiện

mount --bind / /mnt
rm -r /mnt/tmp/* /mnt/tmp/.*
umount /mnt

Các mount --bindlệnh làm cho /mntmột cái nhìn bản sao của hệ thống tập tin gốc của bạn; nhưng trong khi đĩa RAM hiện che khuất /tmptầm nhìn gốc, không có gì che khuất /mnt/tmp.

THÊM : Bạn có thể chuyển sang /tmpđĩa RAM mà không cần khởi động lại, nó chỉ phức tạp hơn một chút. Thêm dòng vào /etc/fstabnhư trên, sau đó chạy các lệnh sau:

mkdir /tmp.old
mount --bind /tmp /tmp.old
mount /tmp
cd /tmp
ln -s /tmp.old/* /tmp/.* .

Sau đó xóa /tmp.oldsau khi khởi động lại tiếp theo của bạn.

Lý do bạn không thể chỉ di chuyển các file từ /tmp.oldđể /tmplà một số chương trình quan trọng có file mở trong /tmp, ví dụ /tmp/.X11-unix/X0mà gian nghe X server trên và mọi chương trình GUI mở khi nó bắt đầu. Di chuyển tệp sang một hệ thống tệp khác có nghĩa là sao chép tệp đó và xóa tệp cũ, do đó bạn sẽ kết thúc với máy chủ X vẫn lắng nghe /tmp.old/.X11-unix/X0nhưng các máy khách X liên hệ /tmp/.X11-unix/X0vô ích. Trên máy chủ, bạn có thể tránh di chuyển nếu bạn cẩn thận.


@giles: Có cách nào để làm điều này mà không thay đổi fstab và khởi động lại không? Tôi giả sử có một phương pháp mkfs tương ứng, theo sau là một mount nhưng "man mkfs" không hữu ích lắm.
hotei

1
@hotei: Việc khởi động lại chỉ để chuyển /tmpsang tmpfs. Điều đó là không cần thiết và tôi đã chỉnh sửa câu trả lời của mình để giải thích cách thực hiện, nhưng nó phức tạp hơn. Không có mkfsliên quan vì không có bộ nhớ cơ bản để chuẩn bị, kernel xử lý mọi thứ.
Gilles 'SO- ngừng trở thành ác quỷ'

@giles: Cảm ơn đã cập nhật. Tôi đã bỏ lỡ phần "phép thuật xảy ra" trong quá trình đọc dòng fstab. Tôi tin rằng tôi hiểu tại sao nó hoạt động bây giờ.
hotei

Tôi có thể hỏi nếu điều này dẫn đến một sự tăng tốc đáng chú ý?
Robert Massaioli

@Robert: Tôi nghĩ rằng nó đã gây ra sự tăng tốc đáng chú ý trên ổ SSD rất chậm của netbook của tôi (chủ yếu là do đồng bộ hóa có thể tồn tại vài giây và /tmptrên đĩa làm tăng tần số đồng bộ hóa), nhưng đây là một ấn tượng chủ quan không đáng tin cậy. Tôi chưa bao giờ thử điểm chuẩn.
Gilles 'SO- ngừng trở nên xấu xa
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.