/usr
โฟลเดอร์ของฉันต้องย้ายไปที่พาร์ติชันใหม่ ฉันจะทำสิ่งนี้โดยไม่ลบเนื้อหาได้อย่างไร
สามารถทำได้ในขณะที่ Ubuntu กำลังทำงานหรือฉันจำเป็นต้องใช้ LiveCD สำหรับสิ่งนี้หรือไม่?
/usr
โฟลเดอร์ของฉันต้องย้ายไปที่พาร์ติชันใหม่ ฉันจะทำสิ่งนี้โดยไม่ลบเนื้อหาได้อย่างไร
สามารถทำได้ในขณะที่ Ubuntu กำลังทำงานหรือฉันจำเป็นต้องใช้ LiveCD สำหรับสิ่งนี้หรือไม่?
คำตอบ:
มันจะปลอดภัยที่สุดหากใช้ Live CD แต่คุณสามารถทำได้:
/usr
ไม่เปลี่ยนแปลงในขณะที่คุณทำเช่นนี้/etc/fstab
เพื่อที่/usr
จะถูกเมานต์เมื่อรีบูตครั้งถัดไปดูรายละเอียดด้านล่างในแต่ละขั้นตอนด้านล่าง
โปรดทราบว่าคุณไม่สามารถเมานต์พาร์ติชันใหม่ใน/usr
ขณะที่ทำงานเนื่องจากจะมีไฟล์จำนวนมาก/usr
ที่จะเปิด
cp -a
ผมจะใช้ -a
เป็นตัวเลือกการเก็บถาวร จากหน้าคน :
-a, --archive
same as -dR --preserve=all
...
-d same as --no-dereference --preserve=links
...
-P, --no-dereference
never follow symbolic links in SOURCE
...
--preserve[=ATTR_LIST]
preserve the specified attributes (default:
mode,ownership,timestamps), if possible additional attributes:
context, links, xattr, all
...
-R, -r, --recursive
copy directories recursively
คุณจำเป็นต้องรู้ UUID ของพาร์ติชันใหม่ของคุณ คุณสามารถดูแผนที่ได้โดยทำ:
$ ls -l /dev/disk/by-uuid/
จากนั้นเพิ่มบรรทัดนี้ไปที่/etc/fstab
:
UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr ext4 defaults 0 2
เปลี่ยน UUID เป็น UUID ของคุณและเปลี่ยนext4
เป็นประเภทระบบไฟล์ที่คุณกำลังใช้ - คุณควรรู้สิ่งนี้หากคุณตั้งค่าพาร์ติชัน
หลังจากรีบูตไฟล์เก่าในบนพาร์ติชันรากจะถูกซ่อนไว้โดยพาร์ทิชันใหม่ติดตั้งอยู่บน/usr
/usr
แต่เราสามารถใช้กลอุบายผูกติดบางอย่างเพื่อไปยังไฟล์เก่าแล้วลบออก
$ sudo mount --bind / /mnt
$ sudo rm -rf /mnt/usr/*
$ sudo umount /mnt
แต่มีการพิมพ์ผิดพลาดเล็กน้อย (พูดกด Enter เมื่อคุณพิมพ์เท่านั้นsudo rm -rf /mnt
) อาจทำให้เกิดภัยพิบัติดังนั้นฉันจะใช้วิธีนี้ถ้าคุณมั่นใจมากในสิ่งที่คุณทำไม่สามารถจัดการกับการหยุดทำงานใด ๆ หรือไม่มี การเข้าถึงตัวเครื่องและด้วยเหตุนี้จึงไม่สามารถบูตจากซีดีสดหรืออุปกรณ์ USB สด
rsync
แทน?
rsync -avz
ด้วย Rsync ให้คุณรีสตาร์ทสำเนาและโดยทั่วไปควรใช้เมื่อย้ายระหว่างพาร์ติชันอุปกรณ์บล็อกหรือเครื่อง
cp
ห้ามใช้ มันไม่ได้เก็บรักษาลิงก์ถาวร สิ่งนี้จะทำให้การอัปเกรดแพ็คเกจหยุดชะงัก ตัวอย่างเช่น/usr/bin/s2p
และ/usr/bin/psed
เป็นไฟล์เดียวกัน การย้ายด้วยcp
จะเป็นการสร้างไฟล์อิสระ 2 เวอร์ชัน ทำrsync -aH
แทน
rsync -avH a/ b
แตกต่างจากrsync -avH a b
การคัดลอกเนื้อหาของโฟลเดอร์a
(นั่นคือa/*
) ในกรณีแรกและตัวโฟลเดอร์เองในวินาที ตรวจสอบให้แน่ใจว่าคุณใช้เครื่องหมายทับที่นี่
เนื่องจากห้องสมุดส่วนใหญ่ที่ใช้อยู่ใน / usr ฉันจะไม่แนะนำให้ย้ายไดเรกทอรีนี้ในขณะที่ใช้งาน Ubuntu ที่จริงแล้วคุณอาจได้รับข้อความแสดงข้อผิดพลาดเมื่อพยายามทำเช่นนี้ ดังนั้นที่ดีที่สุดคือการใช้ LiveCD
คุณสามารถใช้หลายวิธีในการย้าย / คัดลอกไฟล์ cp, rsync ฯลฯ ที่คุณต้องการตรวจสอบให้แน่ใจว่ามีการสร้าง symlink และไม่ได้คัดลอก cp และ rsync ทั้งคู่มีตัวเลือกสำหรับสิ่งนี้
หลังจากย้ายไฟล์ไปยังพาร์ติชันอื่นคุณต้องเพิ่มการเมานท์อื่นใน / etc / fstab เพื่อเมาท์พาร์ติชั่นใหม่ไปที่ / usr
ความสนใจ: ฉันไม่รู้ว่าฉันกำลังทำอะไรอยู่ฉันแค่คัดลอกคำสั่งและทำตามที่คนอื่นแนะนำ นี่อาจเป็นวิธีที่ไม่ถูกต้องที่จะทำ แต่มันได้ผลสำหรับฉัน (อย่างน้อยก็ตอนนี้)
นี่คือวิธีที่ฉันทำ (ทำตามคำตอบของ Hamish และความคิดเห็น):
คัดลอกไฟล์ทั้งหมดที่พาร์ติชันที่สร้างขึ้นใหม่ (แทนที่ด้วยตำแหน่งของพาร์ติชันของคุณมันควรมีลักษณะคล้ายกับของฉัน):
rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c
ณ จุดนี้ฉันรู้ว่ามันคัดลอกทุกอย่างลงใน/usr
โฟลเดอร์บนพาร์ติชันซึ่งไม่ทำงานดังนั้นฉันจึงคัดลอกทุกอย่าง (ที่มีตัวจัดการไฟล์) จากโฟลเดอร์นั้นไปยังรูทของพาร์ติชันและการลบที่ว่างเปล่า โฟลเดอร์หลังจากนั้น
แก้ไข/etc/fstab
(เช่นเดียวกับคำตอบของ Hamish แน่นอนแทนที่ด้วย UUID ของคุณ)
UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr ext4 defaults 0 2
ขั้นตอนที่ไม่ฉลาดนัก: ฉันเปลี่ยนชื่อ/usr
พาร์ทิชันที่เมาท์อยู่ในปัจจุบันเป็น/usrBACKUP
เพียงเพื่อให้ฉันรู้ว่าเมื่อฉันรีบูตระบบจริงๆแล้วมันรีบูตเป็นพาร์ติชันที่สร้างขึ้นใหม่ไม่ใช่พาร์ทิชันเก่า . หลังจากนั้นทุกอย่าง glitched บนหน้าจอและฉันมีที่กำลังจะปิดโดยในระยะยาวการกดปุ่มเพาเวอร์(อัจฉริยะเป็นฉัน) ข้ามขั้นตอนนี้หากคุณไม่ต้องการที่จะผิดพลาดระบบของคุณ
รีบูทระบบ
หลังจากรีบูตเครื่องให้เปิดการตรวจสอบระบบหรือแอปพลิเคชันที่คล้ายกันเพื่อดูว่า/usr
มีการติดตั้งพาร์ติชันใหม่ของคุณหรือไม่และตรวจสอบความปลอดภัยว่าทุกอย่างเป็นไปตามแผนที่วางไว้หรือไม่
หลังจากตรวจสอบว่าทุกอย่างเรียบร้อยคุณสามารถลบ/usr
พาร์ติชันเก่าของคุณ ฉันจะเก็บไว้ในกรณีที่มีบางอย่างผิดปกติ
sudo mount -a
อนุญาตให้มันทำงานต่อไปได้?
rsync
เหมาะกว่านี้มากกว่าcp