ฉันจะปิดการแลกเปลี่ยนได้อย่างไร


83

ฉันมีข้อมูลที่สำคัญใน RAM ที่ฉันไม่ต้องการให้อยู่บนดิสก์ ฉันจะปิดการแลกเปลี่ยนได้อย่างไร ฉันมี RAM มากกว่าเพียงพอแล้ว หากหน่วยความจำสูงเกินไปฉันก็ไม่มีปัญหากับกระบวนการที่ถูกยกเลิก ฉันจะปิดการแลกเปลี่ยนได้อย่างไร

หมายเหตุ: ฉันไม่มี swap partition และสิ่งนี้กำลังทำงานใน VM (VMWare)

swap 

2
แม้ว่าคุณจะมี RAM จำนวนมาก แต่ก็ไม่ใช่ความคิดที่ดีที่สุดที่จะทำงานได้อย่างสมบูรณ์โดยไม่ต้องสลับ (ดูตัวอย่างalexonlinux.com/swap-vs-no-swap ) ขึ้นอยู่กับความต้องการของคุณคุณอาจลองใส่ swap partition บนอุปกรณ์ที่มีการรักษาความปลอดภัย dm-crypt ดังนั้นทุกอย่างที่เขียนลงในนั้นจะถูกเข้ารหัส คุณต้องตรวจสอบให้แน่ใจว่าในกรณีเช่นนี้การแลกเปลี่ยนนั้นจะเปิดใช้งานหลังจากที่มีการเข้ารหัสโวลุ่มและเปิดใช้งานก่อนที่จะปิดใช้งานการแมปอุปกรณ์ (ฉันคิดว่านั่นเป็นค่าเริ่มต้นบน Ubuntu แต่ฉันไม่แน่ใจ) เพียงค้นหาเว็บสำหรับ "การแลกเปลี่ยนที่เข้ารหัส" เพื่อค้นหาคำแนะนำมากมาย
Soulsource

1
Apropos: askubuntu.com/questions/248158/…คุณไม่จำเป็นต้องสลับจนกว่าคุณจะต้องการมัน แล้วคุณต้องการมันจริงๆ

cryptswap เกี่ยวกับอะไร? / dev / mapper / cryptswap1

คำตอบ:


121

การใช้

sudo swapoff -a  

เป็นวิธีปกติในการปิดการสลับโดยswapon -aใช้คำสั่งเพื่อเปิดใช้งานอีกครั้ง ดูman swapoff ข้อมูลเพิ่มเติมเกี่ยวกับการปิดการแลกเปลี่ยนอุปกรณ์ที่ชัดเจน


7
ดูเหมือนว่าจะยังคงมีอยู่ในการรีบูตใช่หรือไม่
ebyrob

19
การเปลี่ยนแปลงการสลับถาวรมักจะทำใน / etc / fstab
ubfan1

เราเพียงแค่คัดลอกสิ่งนี้ลงใน / etc / fstab
Max

6
ไม่แทนคุณแสดงความคิดเห็นในบรรทัด swap ใน / etc / fstab
Torsten Bronger

คุณสามารถอ่านคำตอบอื่น ๆ วิธีแสดงความคิดเห็นได้
Carolus

25

คุณสามารถปิดการใช้งาน swap หลังจากรีบู๊ตโดยเพียงแค่แสดงความคิดเห็น (เพิ่ม # ด้านหน้าของบรรทัด) รายการ swap ใน/etc/fstabไฟล์ มันจะป้องกันการสลับพาร์ติชันจากการติดตั้งโดยอัตโนมัติหลังจากรีบูต เมื่อต้องการทำสิ่งนี้ในคำสั่งเดียว:

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

หรือเพียงแค่:

sudo sed -i '/ swap / s/^/#/' /etc/fstab

ตอนนี้รายการ swap ของคุณ/etc/fstabจะมีลักษณะเช่นนี้:

#UUID=xxxxxxxx-xxxx-xxxxx-xxx-xxxxxxxxxxx none            swap    sw              0       0

ใช้หมายเลขเฉพาะของคุณเองและอักษรตัวพิมพ์เล็กแทนตัวอักษร "x"


2
ทำไม UUID ที่คุณอ้างถึงมีตัวเลขที่เป็นรูปธรรม? พวกเขาควรจะเหมือนกันสำหรับ UUID ทั้งหมดหรือไม่ UUID ของพาร์ติชันของฉันไม่มีความบังเอิญกับตัวเลขที่คุณระบุ
Ruslan

คำสั่ง sed ของคุณไม่ทำงานในกรณีที่เขตข้อมูลถูกคั่นด้วยแท็บ (ไม่ใช่ช่องว่าง) มันเขียนได้ดีกว่าในฐานะsed -ri '/\sswap\s/s/^#?/#/' /etc/fstabPS: ฉันได้เพิ่ม#?เพื่อป้องกันการเปลี่ยนแปลงเพิ่มเติมใน / etc / fstab เมื่อปิดการใช้งานบรรทัดแล้ว
Alek_A

4

หากคุณกังวลเกี่ยวกับเนื้อหาของการแลกเปลี่ยนคุณสามารถปิดได้ตามที่ระบุในแบบปกติด้วยsudo swapoff -aแล้วเติมอุปกรณ์ศูนย์ด้วยข้อมูลศูนย์หรือข้อมูลแบบสุ่มโดยใช้ dd

ใช้เนื้อหาของ fstab เพื่อค้นหา swapfile หรืออุปกรณ์ของคุณ ( less /etc/fstab)

มีอยู่มันและสองและสามการตรวจสอบก็ตั้งที่ sda5 พูดหรือ/swapfile (พาร์ทิชันแลกเปลี่ยนถูกแทนที่โดยเริ่มต้นด้วย swapfile ใน 17.04 และเกิน.)

ในกรณีที่มีการสลับพาร์ติชันหรือไดรฟ์: (นำหน้าด้วย / dev)ออกคำสั่ง "ตัวทำลายดิสก์" (ไม่ควรใช้อย่างเบามือ)

sudo dd if=/dev/zero of=swapแทนที่การสลับคำด้วยอุปกรณ์สลับหรือไฟล์ที่คุณอยู่/etc/fstab

การระเบิดเต็มไปด้วยศูนย์หรือ

sudo dd if=/dev/random of=swapแทนที่การสลับคำด้วยอุปกรณ์สลับหรือไฟล์ที่คุณอยู่/etc/fstab

เพื่อระเบิดมันเต็มไปด้วยข้อมูลแบบสุ่ม

ในกรณีของ swapfile (นำหน้าด้วยเส้นทางเท่านั้น):คุณสามารถลบไฟล์ด้วยrm /path/to/swapfile

ครั้งต่อไปที่คุณเปิดสวิตช์ด้วย

swapon -a

ระบบจะใช้มันอย่างมีความสุขอีกครั้ง หากคุณมี RAM มากมายคุณอาจไม่จำเป็นต้องทำการสลับเลย ออกคำสั่ง

free เมื่อระบบอยู่ภายใต้ภาระหนักและดูว่ามีการใช้งานเท่าใดในการตัดสินใจ

หากคุณพิจารณาว่าคุณไม่ต้องการสลับอย่างถาวร (สำหรับการจำศีลหรืออะไรก็ตาม) คุณสามารถคอมเม้นต์บรรทัดนั้นใน fstab ตามที่แนะนำไว้ที่นี่

ฟรี


3

มันอาจจะเป็นทางออกที่อ่อนแอ แต่ฉันมักจะใช้มัน คุณสามารถพิมพ์

sudo -s
crontab -e

และเพิ่ม

@reboot sudo swapoff -a  

ดังนั้นมันจะถูกปิดใช้งานโดยอัตโนมัติเมื่อบูต


4
ฉันหวังว่ามันจะไปโดยไม่บอกว่านี่เป็นวิธีที่แย่มาก เหตุใดจึงต้องสร้างภารกิจเวลาบูตเพื่อปิดตัวเลือกอื่นเมื่อมีไฟล์อื่นที่สามารถแก้ไขได้เพื่อหยุดการทำงานในตอนแรก
underscore_d

อาจจะไม่เป็นที่ชื่นชอบความสวยงาม แต่ก็ไม่มีอะไรน่าสงสาร หากคุณคุ้นเคยกับการใช้ crontab อยู่แล้ววิธีนี้จะทำให้ง่ายขึ้นเล็กน้อยและใช้งานง่ายกว่าการคัดลอกสิ่งที่ผู้ใช้รายอื่นใน SE บอกให้คุณทำ / etc / fstab และคุณจะยังจำได้ว่าจะทำอย่างไรกับคอมพิวเตอร์เครื่องใหม่โดยไม่ต้องเรียกใช้ google อีกครั้ง ฉันเพิ่งจะรู้ว่า crontab คืออะไรและคุ้นเคยกับพาร์ติชั่นดิสก์อยู่แล้ว แต่ตรรกะยังคงอยู่
Nicholas Pipitone

จริงๆแล้วนี่อาจเป็นทางออกที่ดีกว่า เนื่องจากคำแนะนำ / etc / fstab ใช้ได้กับพาร์ทิชัน swap เท่านั้น โซลูชันนี้ใช้กับการตั้งค่า linux ไม่ว่าจะใช้พาร์ติชันหรือ swapfile หรือไม่ก็ตาม
Nicholas Pipitone

2
sudo swapoff -a

คำสั่งดังกล่าวปิดการใช้งานการแลกเปลี่ยนเฉพาะสำหรับเซสชั่นปัจจุบันคุณจะต้องใส่ความคิดเห็นออกพาร์ทิชันแลกเปลี่ยนในไฟล์/ etc / fstab ในการทำเช่นนี้คุณเพียงแค่เพิ่ม "#" (บรรทัดความคิดเห็น) ในตอนต้นของบรรทัด swap ขั้นตอนดังนี้:

  1. เปิดไฟล์ fstab พิมพ์sudo gedit /etc/fstabเทอร์มินัล

เนื้อหาของไฟล์จะมีลักษณะเช่นนี้:

proc            /proc           proc    nodev,noexec,nosuid 0       0
/host/ubuntu/disks/root.disk /               ext4    loop,errors=remount-ro 0       1
/host/ubuntu/disks/swap.disk none            swap    loop,sw         0       0
#/dev/sda10 /media/ASD  vfat    defaults    0   0
#/dev/sda1  /media/98   vfat    defaults    0   0
  1. เพียงแค่เพิ่มแฮช (#) ที่จุดเริ่มต้นของบรรทัดพาร์ติชัน swap ดังนั้นบรรทัดจะมีลักษณะดังนี้:

#/host/ubuntu/disks/swap.disk none swap loop,sw 0 0

  1. รีบูทพีซีของคุณ

0

ไปที่เทอร์มินัลแล้วเรียกใช้คำสั่งนี้: gnome-disks. มันไม่ได้ติดตั้งในการแจกแจงทั้งหมด ถ้าเป็นเช่นนั้นทำตามคำแนะนำที่พิมพ์เพื่อติดตั้งแล้วลองอีกครั้ง ค้นหาอุปกรณ์ที่มีคำว่า 'swap' ที่บานหน้าต่างด้านซ้าย โดยปกติจะมีขนาดเท่ากับหน่วยความจำกายภาพของคุณ คลิกปุ่มสี่เหลี่ยมเพื่อปิดการใช้งาน พิสูจน์ตัวตนการเปลี่ยนแปลงนี้ด้วยรหัสผ่านรูทของคุณ

สกรีนช็อต : http://imgur.com/Og6igqb

ในแอปพลิเคชันการตรวจสอบระบบ (gnome-system-monitor) คุณจะเห็นรายงานพื้นที่แลกเปลี่ยนเป็น 'ไม่พร้อมใช้งาน' พื้นที่การแลกเปลี่ยนถูกปิดใช้งาน แต่ไม่ถูกลบ คุณสามารถเปิดใช้งานได้อย่างง่ายดายอีกครั้งในอนาคต การลบพื้นที่สว็อปทำให้ระบบของฉันไม่เป็นอันตราย แต่คุณจะสร้างงานให้ตัวเองได้มากขึ้นถ้าคุณตัดสินใจว่าคุณต้องการกลับมาใช้ (ไฮเบอร์เนต) ในอนาคต

แก้ไข: เพื่อป้องกันการติดตั้งเมื่อเริ่มต้นคุณควรไปที่ "แก้ไขตัวเลือกการเมานท์ ... " ใน gnome-disk และยกเลิกการเลือก "เมานต์เมื่อเริ่มต้น"


1
คุณคิดว่านี่เป็นคำตอบที่ผู้ใช้กังวลเกี่ยวกับการมีข้อมูลที่ละเอียดอ่อนบนพาร์ทิชันสลับหรือไม่? คุณบอกเราได้ไหมว่าทำไม
Elder Geek

1
จุดประสงค์หลักของผู้ใช้คือถามวิธีการปิดการใช้งานการสลับ หากคุณมีข้อมูลที่สำคัญคุณควรใช้การเข้ารหัสล่วงหน้าก่อนบูตอย่างดีเลิศ
user170544

1
ฉันไม่เห็นด้วยอย่างเคารพ เมื่อฉันอ่านคำถามประโยคแรกที่ฉันเจอคือ "ฉันมีข้อมูลที่ละเอียดอ่อนในหน่วยความจำที่ฉันไม่ต้องการให้อยู่ในดิสก์" ฉันเชื่อว่านี่เป็นข้อกังวลหลักของเขาซึ่งเป็นสาเหตุที่เขาเริ่มต้นด้วย โดยไม่คำนึงว่าฉันเชื่อว่าฉันได้ครอบคลุมทุกคำถามของเขาในคำตอบของฉัน ลองพิจารณาเป็นตัวอย่างที่มีประโยชน์
Elder Geek

0

แทนที่defaultsด้วยsw,noautoในบรรทัดซึ่งประกอบด้วยรายการ swap ในไฟล์/etc/fstab:

/dev/mapper/centos-swap swap  swap    sw,noauto        0 0

(เส้นทาง/dev/mapper/centos-swapอาจแตกต่างกันสำหรับคุณ)

ตอนนี้เช็คเอาท์เอาท์พุทหลังจากรีบูตเครื่อง Swap ของคุณจะไม่ติดตั้ง:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         100        3408           8         282        3483
**Swap:             0           0           0**
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.