ฉันจะเปลี่ยน swap partition ใน Linux ได้อย่างไร


12

ฉันจะเปลี่ยน swap partition ใน Linux ได้อย่างไร หากปัจจุบันฉันใช้ / dev / hda3 เพื่อแลกเปลี่ยนและฉันต้องการใช้ / dev / hda4 ฉันควรทำตามขั้นตอนใด


1
มันอาจคุ้มค่าที่จะสร้างโลจิคัลพาร์ติชัน / dev / hda5 ในพาร์ติชันหลัก / dev / hda4 และใช้มันเพื่อแลกเปลี่ยน วิธีนี้คุณจะได้ไม่ต้องใช้จ่ายทั้งหมด / dev / hda4 สำหรับการแลกเปลี่ยนและสามารถสร้างพาร์ทิชันตรรกะอื่น ๆ ในนั้น
dmityugov

คำตอบ:


25

ทำตามที่รูท:

swapoff /dev/hda3
mkswap /dev/hda4
swapon /dev/hda4

และแก้ไขรายการสลับใน / etc / fstab


13

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

สมมติว่า swapfile ของคุณจะอยู่ในไดเรกทอรีรากเป็น/swapfileและจะมีขนาด 512 MB เพื่อสร้างมันออกคำสั่งเป็นราก:

$ dd if=/dev/zero of=/swapfile bs=1M count=512
$ mkswap /swapfile
$ swapon /swapfile

หากต้องการใช้โดยอัตโนมัติหลังจากรีบูตให้แทรก/etc/fstab:

/swapfile    none    swap    defaults    0 0

การเพิ่มไฟล์แลกเปลี่ยนมากขึ้นเป็นง่ายๆเป็นสร้างไฟล์มากขึ้น ( /swapfile1, /swapfileX) การจัดรูปแบบโดยใช้และเปิดใช้งานโดยใช้mkswap swaponหากคุณต้องการที่จะปิดการใช้งาน swapfile swapoff /swapfileคุณสามารถใช้คำสั่ง

สำหรับประสิทธิภาพระหว่างดิสก์และเวอร์ชันของไฟล์มันก็ไม่ต่างกันมากนัก คุณยังสามารถใช้ swapfile เป็นดิสก์ไฮเบอร์เนตในแล็ปท็อป (แม้ว่าฉันจะใช้พาร์ติชันแยกต่างหากสำหรับมันเสมอ)


swapfile ไม่ใช่ความคิดที่ดีเนื่องจาก ext4 เป็น SSD ที่ช้าสุดสำหรับขั้นตอนการเขียนบ่อยๆ นี่คือเหตุผลที่โดยค่าเริ่มต้นแลกเปลี่ยน linux มีระบบไฟล์ที่แตกต่างกัน วิธีที่ถูกต้องคือปรับขนาดตารางพาร์ติชันเพื่อสร้างพาร์ติชัน swap ให้ใหญ่
Evalds Urtans

9

ในขณะที่บิน:

sudo swapoff /dev/hda3
sudo mkswap /dev/hda4
sudo swapon /dev/hda4

สำหรับ bootime หลังจากคุณรัน mkswap ให้แก้ไขไฟล์ / etc / fstab และเปลี่ยนบรรทัด / dev / hda3 ตามลำดับ


4

คุณจะต้องฟอร์แมต / dev / hda4 เป็น swap ซึ่งฉันคิดว่าจะลบตารางระบบไฟล์จากนั้นเพียงแค่แก้ไข / etc / fstab และสลับจุดเป็น / dev / hda4 จากนั้นเริ่มต้นใหม่และคุณควรจะดี มันไปโดยไม่บอกว่าคุณจะสูญเสียข้อมูลใด ๆ ใน / dev / hda4 คุณสามารถใช้ gparted เป็น gui สำหรับการจัดรูปแบบ


1
คุณไม่จำเป็นต้องรีบูท Linux 2.6.x หลังจากทำการฟอร์แมตพาร์ติชั่นแม้กระทั่งหลังจากเปลี่ยนตารางพาร์ติชั่นของดิสก์
drybjed

จุดดี แต่ฉันก็ยึดมั่นในปรัชญาของ KISS
skitzot33

@ skitzot33 การบูตไม่ง่ายกว่าการบูทหรือเปล่า?
glglgl

2

วิธีการแก้ปัญหาของ mateusza ก็โอเค แต่รัฐอาจไม่สามารถเรียกคืนได้เมื่อฟื้นตัวจากการจำศีล ต้องการการดำเนินการเพิ่มเติมบางอย่าง:

# prepare your partitions
swapoff /dev/sda2
mkswap /dev/sda3
swapon /dev/sda3

# find swap uuid
sudo blkid | grep swap
# OR
sudo echo ls -l /dev/disk/by-uuid | grep sda3 |  cut -d' '  -f8 >> /etc/fstab

# edit swap entry in /etc/fstab
gksu gedit /etc/fstab

# edit the uuid line in /etc/initramfs-tools/conf.d/resume
gksu gedit /etc/initramfs-tools/conf.d/resume

# In terminal, execute this command
sudo update-initramfs -u

คุณสามารถทดสอบการจำศีลของคุณที่นี่ถ้ามันไม่ทำงาน:

# check your /etc/default/grub file
gksu gedit /etc/default/grub

# Depending on your version : if a line looks like
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=<old_swap_partition_uuid>"
# then modify it accordingly; otherwise that's all, you're done

# execute in terminal
sudo update-grub

นำมาจากaskubuntu

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.