ผลต่างระหว่างรุ่นของ "การ backup hard disk ของ ubuntu server ด้วยคำสั่ง tar"
(หน้าที่ถูกสร้างด้วย 'บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 2-04-2558 ดูแลโดย WI...') |
|||
แถว 1: | แถว 1: | ||
บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 2-04-2558 | บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 2-04-2558 | ||
− | ดูแลโดย WIBOON <br/><br/> | + | ดูแลโดย WIBOON<br/><br/> |
− | *เป็นการ backup hard disk partition sda1 ของ server ด้วยคำสั่ง tar ขึ้นเป็น image file ชนิด tgz ในขณะเดียวกันก็ส่งผ่าน LAN ไปเก็บไว้บน server หรือ client | + | *เป็นการ backup hard disk partition sda1 ของ server ด้วยคำสั่ง tar ขึ้นเป็น image file ชนิด tgz ในขณะเดียวกันก็ส่งผ่าน LAN ไปเก็บไว้บน server หรือ client บนเน็ตอีกเครื่องหนึ่ง |
*เรียกได้ว่าเป็นเทคนิคโคลนนิ่ง (cloning) | *เรียกได้ว่าเป็นเทคนิคโคลนนิ่ง (cloning) | ||
*เทคนิคนี้เป็นสูตรที่ใช้สร้าง psu12-sritrang.tgz | *เทคนิคนี้เป็นสูตรที่ใช้สร้าง psu12-sritrang.tgz | ||
*เป็นวิธีที่ต้องปิดเครื่องก่อนโคลนนิ่ง<br/> | *เป็นวิธีที่ต้องปิดเครื่องก่อนโคลนนิ่ง<br/> | ||
+ | <br/> | ||
− | + | ความต้องการในการทดสอบทำ | |
− | |||
*server1 คือต้นฉบับ | *server1 คือต้นฉบับ | ||
*server2 คือที่เก็บไฟล์ .tgz ซึ่ง server2 ต้องติดตั้ง sshfs ไว้แล้ว (sudo apt-get install sshfs) | *server2 คือที่เก็บไฟล์ .tgz ซึ่ง server2 ต้องติดตั้ง sshfs ไว้แล้ว (sudo apt-get install sshfs) | ||
แถว 18: | แถว 18: | ||
ขั้นตอนดังนี้<br/> | ขั้นตอนดังนี้<br/> | ||
− | <span style="color:#0000cd">บูทด้วยแผ่น sysresccd </span> | + | <span style="color:#0000cd">บูทด้วยแผ่น sysresccd</span> |
และทำการ clone โดยใช้คำสั่งดังต่อไปนี้ | และทำการ clone โดยใช้คำสั่งดังต่อไปนี้ | ||
แถว 48: | แถว 48: | ||
จัดการ partition hard disk sda ให้เท่ากับที่ใช้ใน /etc/fstab ของ server1<br/> | จัดการ partition hard disk sda ให้เท่ากับที่ใช้ใน /etc/fstab ของ server1<br/> | ||
− | ใช้คำสั่ง parted เพื่อสร้าง partition /sda1 ขนาด 7 GB, /sda5 ขนาด 1 GB ดังต่อไปนี้<br/>parted -s /dev/sda mklabel msdos<br/>parted -s /dev/sda unit GB mkpart primary ext4 0 7<br/>parted -s /dev/sda unit GB mkpart extended 7 8<br/>parted -s /dev/sda unit GB mkpart logical linux-swap 7 8<br/>mkfs.ext4 /dev/sda1<br/>mkswap /dev/sda5<br/> | + | ใช้คำสั่ง parted เพื่อสร้าง partition /sda1 ขนาด 7 GB, /sda5 ขนาด 1 GB ดังต่อไปนี้<br/><span style="color:#0000cd">parted -s /dev/sda mklabel msdos<br/>parted -s /dev/sda unit GB mkpart primary ext4 0 7<br/>parted -s /dev/sda unit GB mkpart extended 7 8<br/>parted -s /dev/sda unit GB mkpart logical linux-swap 7 8<br/>mkfs.ext4 /dev/sda1<br/>mkswap /dev/sda5</span><br/> |
ทำการ restore โดยใช้คำสั่งดังต่อไปนี้<br/> | ทำการ restore โดยใช้คำสั่งดังต่อไปนี้<br/> | ||
− | mount /dev/sda1 /mnt/custom<br/> | + | <span style="color:#0000cd">mount /dev/sda1 /mnt/custom</span><br/> |
− | sshfs user2@server2:/home/user2/ /mnt/backup<br/>(ต้องป้อน username และ password ให้ถูกต้อง)<br/> | + | <span style="color:#0000cd">sshfs user2@server2:/home/user2/ /mnt/backup</span><br/>(ต้องป้อน username และ password ให้ถูกต้อง)<br/> |
− | tar -zxpvf /mnt/backup/server1.tgz -C /mnt/custom .<br/>(ต้องระวังว่ามีเครื่องหมายจุดต่อท้ายด้วย)<br/> | + | <span style="color:#0000cd">tar -zxpvf /mnt/backup/server1.tgz -C /mnt/custom .</span><br/>(ต้องระวังว่ามีเครื่องหมายจุดต่อท้ายด้วย)<br/> |
เตรียมพื้นที่ /dev, /sys, /proc สำหรับใช้กับคำสั่ง grub-install เพื่อทำ boot loader ให้เครื่อง boot ได้<br/> | เตรียมพื้นที่ /dev, /sys, /proc สำหรับใช้กับคำสั่ง grub-install เพื่อทำ boot loader ให้เครื่อง boot ได้<br/> | ||
− | mount --bind /dev /mnt/custom/dev<br/> | + | <span style="color:#0000cd">mount --bind /dev /mnt/custom/dev</span><br/> |
+ | |||
+ | <span style="color:#0000cd">mount --bind /sys /mnt/custom/sys</span><br/> | ||
− | mount --bind / | + | <span style="color:#0000cd">mount --bind /proc /mnt/custom/proc</span><br/><br/>แก้ไขค่า UUID ของ partition ให้ตรงกับของใหม่<br/> |
− | + | ใช้คำสั่งแสดงข้อมูล UUID ใน fstab ของเดิม ดังนี้<br/><span style="color:#0000cd">cat /mnt/custom/etc/fstab</span><br/>สมมติได้ดังนี้<br/><span style="color:#006400">UUID=fb051dc6-5f32-4dd0-a5d3-935cee7d75bf / ext4 relatime,errors=remount-ro 0 1<br/>UUID=b454ee0f-3135-4bc1-b111-16731f41059c none swap sw 0 0</span><br/>ใช้คำสั่งแสดง UUID ของใหม่ ดังนี้<br/><span style="color:#0000cd">blkid</span><br/>สมมติได้ดังนี้<br/><span style="color:#006400">/dev/sda1: UUID="babdfa44-be47-47fc-b6f5-92afd905487d" TYPE="ext4"<br/>/dev/sda5: UUID="9881ca9c-9a5a-4104-be59-9ced35697f6d" TYPE="swap"</span><br/> | |
− | + | เราจะแก้ไขไฟล์ fstab ให้ถูกต้อง ใช้คำสั่งดังนี้<br/><span style="color:#0000cd">sed -i 's/fb051dc6-5f32-4dd0-a5d3-935cee7d75bf/babdfa44-be47-47fc-b6f5-92afd905487d/g' /mnt/custom/etc/fstab</span><br/><span style="color:#0000cd">sed -i 's/b454ee0f-3135-4bc1-b111-16731f41059c/9881ca9c-9a5a-4104-be59-9ced35697f6d/g' /mnt/custom/etc/fstab</span><br/>และแก้ไขไฟล์ grub.cfg ให้ถูกต้อง ใช้คำสั่งดังนี้<br/><span style="color:#0000cd">chmod u+w /mnt/custom/boot/grub/grub.cfg</span><br/><span style="color:#0000cd">sed -i 's/fb051dc6-5f32-4dd0-a5d3-935cee7d75bf/babdfa44-be47-47fc-b6f5-92afd905487d/g' /mnt/custom/boot/grub/grub.cfg</span><br/><span style="color:#0000cd">sed -i 's/b454ee0f-3135-4bc1-b111-16731f41059c/9881ca9c-9a5a-4104-be59-9ced35697f6d/g' /mnt/custom/boot/grub/grub.cfg</span><br/><span style="color:#0000cd">chmod u-w /mnt/custom/boot/grub/grub.cfg</span><br/> | |
− | + | ทำ boot loader<br/><span style="color:#0000cd">chroot /mnt/custom /bin/bash -c "grub-install --recheck /dev/sda"</span><br/>และอัปเดต grub<br/><span style="color:#0000cd">chroot /mnt/custom /bin/bash -c "update-grub"</span><br/><br/>ปิดการใช้พื้นที่ /mnt/custom ต่างๆ ที่ mount ไว้<br/><span style="color:#0000cd">umount /mnt/custom/dev<br/>umount /mnt/custom/sys<br/>umount /mnt/custom/proc<br/>umount /mnt/custom</span><br/>ปิดการใช้พื้นที่ /mnt/backup<br/><span style="color:#0000cd">fusermount -u /mnt/backup</span><br/> | |
− | + | ปิดเครื่องด้วยคำสั่ง<br/><span style="color:#0000cd">shutdown -h now</span><br/> | |
− | + | <span style="color:#0000cd">เอาแผ่น sysresccd ออก</span><br/> | |
− | + | ทดสอบเปิดเครื่องที่ restore สำเร็จนั้น จะใช้งานได้เหมือน server ต้นฉบับ |
รุ่นปรับปรุงเมื่อ 16:07, 2 เมษายน 2558
บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 2-04-2558
ดูแลโดย WIBOON
- เป็นการ backup hard disk partition sda1 ของ server ด้วยคำสั่ง tar ขึ้นเป็น image file ชนิด tgz ในขณะเดียวกันก็ส่งผ่าน LAN ไปเก็บไว้บน server หรือ client บนเน็ตอีกเครื่องหนึ่ง
- เรียกได้ว่าเป็นเทคนิคโคลนนิ่ง (cloning)
- เทคนิคนี้เป็นสูตรที่ใช้สร้าง psu12-sritrang.tgz
- เป็นวิธีที่ต้องปิดเครื่องก่อนโคลนนิ่ง
ความต้องการในการทดสอบทำ
- server1 คือต้นฉบับ
- server2 คือที่เก็บไฟล์ .tgz ซึ่ง server2 ต้องติดตั้ง sshfs ไว้แล้ว (sudo apt-get install sshfs)
- server3 คือเครื่องว่างเปล่า
(1) การ Backup
ขั้นตอนดังนี้
บูทด้วยแผ่น sysresccd
และทำการ clone โดยใช้คำสั่งดังต่อไปนี้
mount /dev/sda1 /mnt/custom
sshfs user2@server2:/home/user2/ /mnt/backup
(ต้องป้อน username และ password ให้ถูกต้อง)
tar -zcpvf /mnt/backup/server1.tgz -C /mnt/custom .
(ต้องระวังว่ามีเครื่องหมายจุดต่อท้ายด้วย)
รอสักพัก เห็นข้อความวิ่งไปเรื่อย ๆ จนข้อความหยุดวิ่ง
umount /mnt/custom
fusermount -u /mnt/backup
ปิดเครื่องด้วยคำสั่ง
shutdown -h now
เอาแผ่น sysresccd ออก
(2) การ Restore
ขั้นตอนดังนี้
เปิด server3 ให้บูทด้วยแผ่น sysresccd
จัดการ partition hard disk sda ให้เท่ากับที่ใช้ใน /etc/fstab ของ server1
ใช้คำสั่ง parted เพื่อสร้าง partition /sda1 ขนาด 7 GB, /sda5 ขนาด 1 GB ดังต่อไปนี้
parted -s /dev/sda mklabel msdos
parted -s /dev/sda unit GB mkpart primary ext4 0 7
parted -s /dev/sda unit GB mkpart extended 7 8
parted -s /dev/sda unit GB mkpart logical linux-swap 7 8
mkfs.ext4 /dev/sda1
mkswap /dev/sda5
ทำการ restore โดยใช้คำสั่งดังต่อไปนี้
mount /dev/sda1 /mnt/custom
sshfs user2@server2:/home/user2/ /mnt/backup
(ต้องป้อน username และ password ให้ถูกต้อง)
tar -zxpvf /mnt/backup/server1.tgz -C /mnt/custom .
(ต้องระวังว่ามีเครื่องหมายจุดต่อท้ายด้วย)
เตรียมพื้นที่ /dev, /sys, /proc สำหรับใช้กับคำสั่ง grub-install เพื่อทำ boot loader ให้เครื่อง boot ได้
mount --bind /dev /mnt/custom/dev
mount --bind /sys /mnt/custom/sys
mount --bind /proc /mnt/custom/proc
แก้ไขค่า UUID ของ partition ให้ตรงกับของใหม่
ใช้คำสั่งแสดงข้อมูล UUID ใน fstab ของเดิม ดังนี้
cat /mnt/custom/etc/fstab
สมมติได้ดังนี้
UUID=fb051dc6-5f32-4dd0-a5d3-935cee7d75bf / ext4 relatime,errors=remount-ro 0 1
UUID=b454ee0f-3135-4bc1-b111-16731f41059c none swap sw 0 0
ใช้คำสั่งแสดง UUID ของใหม่ ดังนี้
blkid
สมมติได้ดังนี้
/dev/sda1: UUID="babdfa44-be47-47fc-b6f5-92afd905487d" TYPE="ext4"
/dev/sda5: UUID="9881ca9c-9a5a-4104-be59-9ced35697f6d" TYPE="swap"
เราจะแก้ไขไฟล์ fstab ให้ถูกต้อง ใช้คำสั่งดังนี้
sed -i 's/fb051dc6-5f32-4dd0-a5d3-935cee7d75bf/babdfa44-be47-47fc-b6f5-92afd905487d/g' /mnt/custom/etc/fstab
sed -i 's/b454ee0f-3135-4bc1-b111-16731f41059c/9881ca9c-9a5a-4104-be59-9ced35697f6d/g' /mnt/custom/etc/fstab
และแก้ไขไฟล์ grub.cfg ให้ถูกต้อง ใช้คำสั่งดังนี้
chmod u+w /mnt/custom/boot/grub/grub.cfg
sed -i 's/fb051dc6-5f32-4dd0-a5d3-935cee7d75bf/babdfa44-be47-47fc-b6f5-92afd905487d/g' /mnt/custom/boot/grub/grub.cfg
sed -i 's/b454ee0f-3135-4bc1-b111-16731f41059c/9881ca9c-9a5a-4104-be59-9ced35697f6d/g' /mnt/custom/boot/grub/grub.cfg
chmod u-w /mnt/custom/boot/grub/grub.cfg
ทำ boot loader
chroot /mnt/custom /bin/bash -c "grub-install --recheck /dev/sda"
และอัปเดต grub
chroot /mnt/custom /bin/bash -c "update-grub"
ปิดการใช้พื้นที่ /mnt/custom ต่างๆ ที่ mount ไว้
umount /mnt/custom/dev
umount /mnt/custom/sys
umount /mnt/custom/proc
umount /mnt/custom
ปิดการใช้พื้นที่ /mnt/backup
fusermount -u /mnt/backup
ปิดเครื่องด้วยคำสั่ง
shutdown -h now
เอาแผ่น sysresccd ออก
ทดสอบเปิดเครื่องที่ restore สำเร็จนั้น จะใช้งานได้เหมือน server ต้นฉบับ