ฉันต้องการที่จะเก็บในพาร์ทิชันที่แยกต่างหากจาก/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/*