ฉันต้องการที่จะเก็บในพาร์ทิชันที่แยกต่างหากจาก/var
/
วิธีการตั้งค่านี้ถูกต้องคืออะไร?
ฉันต้องการที่จะเก็บในพาร์ทิชันที่แยกต่างหากจาก/var
/
วิธีการตั้งค่านี้ถูกต้องคืออะไร?
คำตอบ:
ก่อนอื่นให้เตรียมพาร์ติชันใหม่ (เช่นพร้อมparted
และmkfs
)
สมมติว่าพาร์ติชันคือ / dev / sda5
เมานต์พาร์ติชันใหม่:
mkdir /var2
mount /dev/sda5 /var2
ซิงค์ var ปัจจุบันของคุณ:
rsync -a /var/ /var2
เพิ่มรายการไปยัง / etc / fstab
/dev/sda5 /var ext4 defaults 2 2
Reboot
หากคุณจำเป็นต้องกลับไปที่เดิม / var ของคุณเพียงแค่แสดงความคิดเห็นออกรายการใน fstab
/
ไปยังตำแหน่งอื่นบนระบบปัจจุบันในขณะที่มันกำลังทำงาน (แต่หลังจากรีบูตเครื่อง) จากนั้นคุณสามารถไปที่เก่า/var
และลบถ้าคุณต้องการ
blkid -o list -s UUID
แต่ฉันคิดว่าคุณต้องใช้กับ sudo
เมื่อฉันเข้าครอบครองเซิร์ฟเวอร์เสมือนใหม่ที่ได้รับการจัดเตรียมโดย บริษัท โฮสติ้งของนายจ้างฉันมีพื้นที่ว่างไม่เพียงพอในระบบไฟล์รูท โชคดีที่พวกเขาใช้Logical Volume Manager (LVM)เพื่อแบ่งย่อยดิสก์เสมือนและมีพื้นที่ว่างเพียงพอที่จะสร้างไดรฟ์ใหม่ ฉันสร้างโลจิคัลวอลุ่มพิเศษสำหรับvar
และhome
ซึ่งเป็นไดเร็กทอรีปกติในระบบไฟล์รูท เนื่องจากผู้ให้บริการเซิร์ฟเวอร์เสมือนไม่ได้มีอินเทอร์เฟซเหมือน KVM ซึ่งฉันสามารถเข้าถึงเซิร์ฟเวอร์ในโหมดผู้ใช้คนเดียวฉันจึงใช้วิธีที่คล้ายกันมากกับ Aleksander ที่เค้าร่างไว้ (คำตอบนี้มีรายละเอียดเพิ่มเติมสำหรับการกู้คืนพื้นที่ดิสก์ใน นอกเหนือจากคำสั่งเฉพาะ LVM)
สร้างโลจิคัลวอลุ่มสำหรับvar
ระบบไฟล์ใหม่เมาท์ (ใช้ไดเร็กทอรีชั่วคราว) และคัดลอกไฟล์จากปัจจุบัน/var
ไปยังระบบไฟล์ใหม่:
# 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
เนื่องจากกระบวนการที่กำลังรันอยู่จะมีไฟล์ที่/var
เปิดอยู่และถูกใช้อยู่ทรีไดเรกทอรีจึงไม่สามารถย้ายไปยังระบบไฟล์ใหม่ได้ เรียกซ้ำ ( -r
) คัดลอกไฟล์จาก/var
พาร์ติชันปัจจุบันไปยังระบบไฟล์ใหม่ในขณะที่คงคุณสมบัติของไฟล์และคุณสมบัติเพิ่มเติม ( -a, --archive
ตัวเลือก) ผู้ใช้ที่ระมัดระวังอาจสร้างสแนปชอต LVMของไดรฟ์ข้อมูลปัจจุบันก่อนที่จะคัดลอก แต่นั่นเป็นรายละเอียดนอกหัวข้อมากเกินไปสำหรับคำถามนี้
sudo cp -ra /var/ /var.new/
อีกทางเลือกหนึ่งไฟล์สามารถคัดลอกได้โดยrsync
มี-a, --archive
ตัวเลือกเพื่อรักษาการประทับเวลา, ความเป็นเจ้าของ, โหมด ฯลฯ และ-X, --xattrs
ตัวเลือกเพื่อรักษาแอตทริบิวต์เพิ่มเติมเช่นป้ายความปลอดภัยที่ใช้โดย AppArmor และ SELinux:
sudo rsync -raX /var/ /var.new/
กำหนดค่าระบบไฟล์ใหม่ที่จะใช้เป็นจุดต่อใหม่/var
โดยเพิ่มบรรทัดต่อไป/etc/fstab
นี้ โปรดทราบว่า0
จะใช้เป็นหมายเลขรหัสผ่าน (ฟิลด์สุดท้าย) เพื่อให้ระบบไฟล์ไม่ได้รับการตรวจสอบโดยอัตโนมัติ ( fsck
) หลังจากมีการรีบูตจำนวนหนึ่ง
/dev/mapper/VolGroup00-var /var ext4 defaults 0 0
/var
ตั้งแต่เปลี่ยนเข้าสู่โหมดผู้เดียวเป็นไปไม่ได้รีบูตเครื่องคอมพิวเตอร์ที่จะใช้ปริมาณใหม่นี้เป็น
หลังจากรีสตาร์ทเครื่องระบบไฟล์ใหม่จะถูกเมาท์/var
เพื่อให้จุดเมานท์ชั่วคราวสามารถลบออกได้อย่างปลอดภัย:
sudo rmdir /var.new
/var
ไฟล์เก่าจะยังคงใช้พื้นที่บนพาร์ติชันรูท แต่ไม่สามารถเข้าถึงได้ง่ายในขณะที่ระบบไฟล์อื่นถูกติดตั้งที่/var
(พวกเขาถูก "ปิดบัง" โดยระบบไฟล์ใหม่โดยใช้/var
ไดเรกทอรีเป็นจุดต่อ) ใช้จุดเมานท์ชั่วคราวเพื่อเมาท์ระบบไฟล์รูทเพื่อให้เนื้อหาของ/var
ไดเรกทอรีดั้งเดิมพร้อมใช้งานโดยพา ธ สำรอง
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
และmkfs.ext4
ไม่อธิบายว่ามีอะไรหรือเหตุใดจึงใช้ บางทีคุณอาจบอกได้ง่ายๆว่าการทำพาร์ติชันใหม่นั้นไม่ใช่หัวข้อหลักของคำตอบ
/var
: เริ่มต้นจาก LiveCD ที่ติดพาร์ทิชันบนระบบที่ติดตั้งและ/
rm -rf /var/*