วิธีที่ดีที่สุดในการโคลนการติดตั้ง (คัดลอกไปยังฮาร์ดแวร์ที่เหมือนกัน)


53

เหมือนคำถามนี้แต่แตกต่างกันเล็กน้อย (ฉันคิดว่า) ในที่ฉันมี 6 เครื่อง Acer Aspire Revo R3610 เหมือนกัน หนึ่งคือ (เกือบ) กำหนดค่าตามความต้องการของฉัน - เมื่อฉันเสร็จสิ้นการเตรียมฉันต้องการที่จะทำให้อีก 5 เครื่องเหมือนกันอย่างแน่นอน ฉันยังใหม่กับ Ubuntu สิ่งที่ตรงไปตรงมาที่สุด (วิธีที่ง่ายที่สุด) ในการทำเช่นนี้คืออะไร?

เครื่องกำลังจะใช้งานบนเครือข่ายที่แตกต่างกันหากเป็นเช่นนั้นอาจมีปัญหา (เช่นกับ Windows คุณสามารถโคลนดิสก์ได้ แต่คุณต้องทำการเปลี่ยนแปลงรีจิสทรีหลังจากนั้นถ้าพวกมันจะทำงานบนเครือข่ายเดียวกันเป็นต้น) ฮาร์ดแวร์ในเครื่องทั้ง 6 เครื่องคือผมเครียดเหมือนกัน!

ฉันจะโคลนภาพอิมเมจต้นฉบับหนึ่งไปยังเครื่องที่เหมือนกันได้อย่างมีประสิทธิภาพได้อย่างไร

โปรด จำกัด หนึ่งซอฟต์แวร์ / โซลูชันต่อคำตอบ

คำตอบ:


31

Clonezillaฟังดูเหมือนจะเหมาะกับความต้องการของคุณ


1
เป็นเครื่องมือที่เหมาะสมที่สุดสำหรับงาน My Mum ใช้งาน 'Mumbuntu' แล้วฉันก็ทำการจับภาพของ Acer Revo ของเธอเป็นระยะโดยใช้ clonezilla และนำมันกลับบ้านเพื่อกู้คืนใน Revo ที่ฉันเป็นเจ้าของเป็นข้อมูลสำรอง ทำงานรักษา
popey

7
ข้อดีอย่างหนึ่งของการใช้เครื่องมือเช่น partimage และ ntfsclone (ซึ่งเป็นสิ่งที่ Clonezilla ใช้เพื่อสร้างดิสก์อิมเมจ) คือพวกเขาเข้าใจระบบไฟล์พื้นฐานในแต่ละพาร์ติชั่นซึ่งอนุญาตให้คัดลอกบล็อกที่ใช้แล้วเท่านั้น เนื่องจาก dd ไม่มีฟังก์ชันการทำงานนี้จึงต้องคัดลอกทุกไบต์ของพาร์ติชันไม่ว่าจะใช้หรือไม่ก็ตาม
Evan

1
มันแย่มาก ไม่สามารถโคลนนิ่งหลังจากทำงานสองวัน แฮงค์กับบิตแมป alculating ... ใช้ Windows และ Acronis Trueimage
Olcay Ertaş

DD จะไม่สร้างซีดีสำรองข้อมูลที่สามารถบู๊ตได้หรือไม่ นั่นคือเหตุผลที่ใช้ CloneZilla?

@YumYumYum: ddทำสำเนาไฟล์ / พาร์ติชัน / ไดรฟ์ ดังนั้นหากคุณโคลนซีดีที่สามารถบู๊ตได้ ( .isoอิมเมจหรือCDFSพาร์ติชั่น) ผลลัพธ์ก็จะสามารถบู๊ตได้เช่นกัน แต่ddจะไม่ "แปลง" ชุดโฟลเดอร์ / ไฟล์ที่กำหนดให้เป็นอิมเมจที่สามารถบูตได้
MestreLion

17

DD

การคัดลอกระดับต่ำโดยใช้ dd จะทำเคล็ดลับ!

ระวังที่อยู่ IP และชื่อโฮสต์ที่ขัดแย้งกัน

โดยทั่วไปให้วางไดรฟ์ต้นทางและไดรฟ์ปลายทางไว้ในเครื่องเดียวกันบูตลงในซีดีสด และเรียกใช้บางสิ่งบางอย่างเช่น/dev/sdaแหล่งที่มาและ/dev/sdbปลายทาง:

dd if=/dev/sda of=/dev/sdb bs=4096

ฉันจำตัวถูกดำเนินการโดย:

if -> ไฟล์อินพุต

of -> ไฟล์ที่ส่งออก

bs -> ขนาดบล็อก (อ่านได้ครั้งละกี่ไบต์)


3
แน่นอนว่าทำไมไม่ = / ฉันเคยเห็นคนทำอย่างนั้นและฉันเคยเห็นคนไม่ได้ทำ มีไกด์สไตล์ที่ไหนซักแห่งที่จะตอบหรือไม่?
ดีเร็ก

หากคุณเปิดใช้งาน IP แบบไดนามิกชั่วคราวก่อนที่จะทำการบูตนั้นได้ / สำรองซีดี / USB ไม่ควรมีปัญหาใด ๆ ที่ฉันเชื่อว่าสำหรับ IP ที่ขัดแย้งกัน ตราบใดที่มันสำรอง A ถึง Z ที่สำคัญกับฉันจริงๆเพราะมีไดรเวอร์มากมายที่ฉันมี

2
มีความปลอดภัยเพียงใดเมื่อพิจารณาจากคีย์สาธารณะ / ส่วนตัวที่ใช้โดย OpenSSH จะเหมือนกัน เราจะต้องเปลี่ยนอะไรเพื่อให้ระบบปลอดภัย (แตกต่างจากที่เราไม่ต้องการให้แตกต่างกัน)
jos

คุณหมายถึงอะไรโดยการเรียกใช้ "สิ่งนี้" ฉันเป็นบวกของ sda และ sdb แต่ไม่เข้าใจว่าทำไมคุณเลือก bs นั้น
SDsolar

3

สร้างภาพโดยใช้Remastersysถ่ายโอนไปยังไดรฟ์ปากกาโดยใช้ยูทิลิตี้Startup Disk Creatorและติดตั้งบนระบบอื่น


3

วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการติดตั้ง Ubuntu แบบเปลือยบนฮาร์ดไดรฟ์ของคุณติดตั้ง VirtualBox และตั้งค่าเครื่อง Ubuntu เสมือน เรียกใช้เครื่องเสมือนของคุณและตั้งค่าการติดตั้งเช่นเดียวกับที่คุณต้องการด้วยระฆังและนกหวีดที่คุณต้องการ ทำทุกอย่างที่คุณทำงานและเล่นบนคอมพิวเตอร์เสมือน

VirtualBox เก็บรักษาเครื่องเสมือนเป็นไฟล์อิมเมจดิสก์ขนาดใหญ่ (.vdi) พร้อมกับไฟล์การกำหนดค่าที่มีขนาดเล็กกว่าเล็กน้อย เมื่อใดก็ตามที่คุณต้องการสำรองข้อมูลเครื่องเสมือนของคุณเพียงแค่ปิดเครื่องและคัดลอกไดเรกทอรีไปยังตำแหน่งสำรองของคุณ ฉันใช้ไดรฟ์ภายนอก Passport เพื่อจุดประสงค์นี้

ตอนนี้มีทั้งเครื่องเสมือน Windows 7 และ Ubuntu 12 บนไดรฟ์ภายนอกนั้น การอัปเดตระบบโปรแกรมไฟล์ส่วนบุคคลรูปภาพอะไรก็ตามจะได้รับการบันทึกไว้ในเครื่องเสมือนเหล่านั้น การสำรองข้อมูลประเภทนี้เร็วมากเนื่องจากไฟล์อิมเมจดิสก์ขนาดใหญ่หนึ่งไฟล์จะถ่ายโอนได้เร็วกว่าไฟล์แต่ละไฟล์มาก เนื่องจาก VirtualBox เก็บรักษาไฟล์ในรูปแบบนั้นตลอดเวลาเครื่องเสมือนจึงได้รับการกำหนดค่าให้สำรองข้อมูลเสมอ

ข้อดีอย่างหนึ่งของการตั้งค่าคือฉันสามารถเรียกใช้เครื่องเสมือนเหล่านั้นจากไดรฟ์ภายนอกบนคอมพิวเตอร์เครื่องใดก็ได้ที่ติดตั้ง VirtualBox ดังนั้นตอนนี้แทนที่จะนำคอมพิวเตอร์ของฉันไปรอบ ๆ ฉันจึงนำไดรฟ์ภายนอกของฉันกับ Windows และ Ubuntu ติดตั้ง VirtualBox คอมพิวเตอร์อะไรก็ตามที่ฉันวางแผนที่จะใช้ (ฉันมีไฟล์การติดตั้ง VirtualBox ทั้งหมดบน hd ภายนอกของฉันด้วย - มันพร้อมใช้งานสำหรับระบบปฏิบัติการหลักทั้งหมด) และฉันพร้อมที่จะไป ฉันสามารถคัดลอกเครื่องเสมือนของฉันไปยังคอมพิวเตอร์ที่ฉันใช้หรือเพียงแค่เรียกใช้จากไดรฟ์ภายนอก

หากคอมพิวเตอร์ของคุณล้มเหลวและเสียชีวิตในบางจุดใครสนใจคุณเพียงหยิบดิสก์การติดตั้ง Ubuntu ติดตั้งลงในคอมพิวเตอร์เครื่องใหม่หรือที่ได้รับการซ่อมแซมของคุณเชื่อมต่อไดรฟ์ภายนอกติดตั้ง VirtualBox และคัดลอกเครื่องเสมือนกลับไปยังคอมพิวเตอร์ของคุณ แก้ไขปัญหาด้วยความเครียดน้อยที่สุดการสูญเสียเวลาและการสูญเสียข้อมูล จำนวนข้อมูลที่คุณสูญเสียขึ้นอยู่กับว่าคุณสำรองข้อมูลครั้งล่าสุดเมื่อใด สำหรับตัวฉันเองฉันทำการสำรองข้อมูลใหม่ทุกครั้งที่ฉันทำการเปลี่ยนแปลงครั้งสำคัญ เพียงตรวจสอบให้แน่ใจว่าเครื่องเสมือนของคุณทำงานตามปกติเมื่อคุณทำ คุณไม่ต้องการคัดลอกเครื่องที่เสียหายไปบนเครื่องที่ดี

และไม่ฉันไม่ทำงานกับ VirtualBox


รักมัน upvote ฉันอาจทำสิ่งนี้ในเครื่องถัดไปของฉัน
SDsolar

2

Partimage

อีกหนึ่งยูทิลิตี้การโคลนนิ่งที่ยอดเยี่ยมที่ฉันเคยใช้เช่นกัน คุณสมบัติเทอร์มินัลกุย


สิ่งนี้รวมอยู่ในซีดีกู้ระบบ -> sysresccd.org/Main_Page
hhlp

Partimage ไม่รองรับแหล่ง
Anwar

นั่นทำให้ฉันออกกฎ ext4
SDsolar

2

ฉันจะได้คอมพิวเตอร์หนึ่งเครื่องตามที่คุณต้องการและติดตั้งแพ็คเกจ openssh-server สร้างคู่คีย์ SSH ssh-keygen -t rsaด้วย เพิ่มพับลิกคีย์ไปที่ /root/.ssh/authorized_keys2 จากนั้นฉันจะบูตคอมพิวเตอร์เครื่องใหม่ที่มีไลฟ์ซีดีและเสียบ usb stick ด้วยคีย์ส่วนตัวของ ssh ใช้ gparted เพื่อสร้างพาร์ติชันใหม่ จากนั้นติดตั้งพาร์ติชันใหม่และเรียกใช้สิ่งที่ต้องการsudo rsync -avzx -e "ssh -i /media/disk/path/to/privatekey" --exclude=".gvfs" root@<ImageComputerIP>:/ /path/to/new/partition/

ใช้blkidคำสั่งเพื่อค้นหา UUID ของระบบไฟล์ที่คุณเพิ่งสร้างขึ้น แก้ไข/path/to/new/partition/etc/fstabเพื่อสะท้อน UUID ใหม่ (และประเภทระบบไฟล์หากคุณใช้ระบบไฟล์อื่น)

จากนั้นฉันจะทำตามคำแนะนำในhttps://help.ubuntu.com/community/Grub2/Installing#via_ChRootเกี่ยวกับวิธีการติดตั้งจาก chroot

เวอร์ชันที่เรียบง่ายของหน้านั้น (ซึ่งไม่ได้คำนึงถึง lvm, การจู่โจมซอฟต์แวร์, หรือ bcache, หรือแยก / บู๊ตแบบที่หน้า wiki ทำ):

เมานต์ระบบไฟล์เสมือนที่สำคัญ รันคำสั่งต่อไปนี้เป็นคำสั่งเดียว:

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

Chroot ในอุปกรณ์ระบบปกติของคุณ:

sudo chroot /mnt

ติดตั้ง GRUB 2 อีกครั้ง (แทนที่อุปกรณ์ที่ถูกต้องด้วย sda, sdb และอื่น ๆ อย่าระบุหมายเลขพาร์ติชัน):

grub-install /dev/sdX

สร้างไฟล์เมนู GRUB 2 ขึ้นมาใหม่ (grub.cfg)

update-grub

ออกจาก chroot: CTRL-D บนแป้นพิมพ์

โดยวิธีนี้ใช้งานได้ดีสำหรับการสำรองข้อมูลเช่นกัน Ubuntu ไม่เหมือน Windows ดูเหมือนจะไม่มีปัญหาในการย้ายไปใช้ฮาร์ดแวร์ที่แตกต่างกัน ฉันใส่ฮาร์ดดิสก์จากคอมพิวเตอร์เครื่องหนึ่งไปอีกเครื่องหนึ่งและทำได้ดีและฉันได้คัดลอกการติดตั้งไปยังฮาร์ดแวร์ที่แตกต่างกันและทำได้ดี


ขอบคุณสำหรับสิ่งนี้ - ฉันมีอีกอันกำลังมาไม่นานฉันจะลองดู ไชโย
robsoft

ลิงก์อ้างอิงในปัจจุบันไม่ได้กล่าวถึง chroot หรือวิธีการใด ๆ จึงเป็นความคิดที่ดีที่จะอ้างถึงส่วนต่าง ๆ ที่เกี่ยวข้องของแหล่งที่มาของคุณ
Henno

@Henno หน้า wiki ถูกย้ายแล้ว ปัญหาที่เกิดขึ้นกับการรวมเพจคือวิกิคอยติดตามข่าวสารใหม่ ๆ เช่น bcache และเพียงแค่คัดลอกเนื้อหาของหน้านั้นจะพลาดการอัพเดทเหล่านั้น ไม่ว่าจะด้วยวิธีใดลิงก์อัปเดตและเวอร์ชันที่ถอดแล้วรวมอยู่ด้วย
Azendale

2

ฉันใช้ddrescueสำหรับงานนี้อย่างแน่นอน มันทำงานได้อย่างไร้ที่ติ ง่ายสุด ๆ

ดูหัวข้อนี้ในเทคนิคเพื่อดูรายละเอียด


Link rot เป็นสาเหตุที่คำตอบนี้อย่างน้อยควรมีรายละเอียดบางอย่าง เช่นเดียวกับวิธีติดตั้งและเริ่มต้นใช้งานอย่างน้อยที่สุด
SDsolar

1

G4L

Ghost สำหรับ Linux

Ghost สำหรับ Linux เป็นฮาร์ดดิสก์และพาร์ติชั่นอิมเมจและเครื่องมือโคลนนิ่งคล้ายกับ Norton Ghost (c) และ (tm) โดย Symantec รูปภาพที่สร้างขึ้นจะถูกบีบอัดแบบเป็นทางเลือกและสามารถจัดเก็บไว้ในฮาร์ดไดรฟ์ภายในเครื่องหรือถ่ายโอนไปยังเซิร์ฟเวอร์ FTP ที่ไม่ระบุตัวตน สามารถโคลนไดรฟ์โดยใช้ฟังก์ชั่น Click'n'Clone g4l รองรับการแบ่งไฟล์หากระบบไฟล์โลคอลไม่รองรับการเขียนไฟล์> 2GB เคอร์เนลที่รวมไว้รองรับไดรฟ์ ATA, serial-ATA และ SCSI รองรับการ์ดเครือข่ายทั่วไป มันถูกบรรจุเป็นอิมเมจซีดีที่สามารถบู๊ตได้ซึ่งมี ncurses GUI เพื่อการใช้งานที่ง่าย


พระเจ้าช่วย. นี่คือสิ่งที่ฉันต้องการอย่างแท้จริงสำหรับทุกวัย แม้แต่สำหรับ Windows TNX สำหรับโพสต์ ฉันจะตรวจสอบทันที
SDsolar

1

Fsarchiver

ฉันไม่รู้ว่าทำไมไม่มีใครพูดถึงเรื่องนี้ สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณต้องการกู้คืนเนื้อหาของพาร์ติชันบนระบบไฟล์ประเภทอื่น (เช่นการกู้คืนเนื้อหา ext4 ไปเป็น ext2 หรือ reiserfs) หรือคุณต้องการกู้คืนไปยังพาร์ติชันที่มีขนาดเล็กลง

ฉันใช้มันและมันง่ายมาก ตัวอย่างเช่นในการโคลนพาร์ติชันบอกว่า/dev/sda1คุณใช้คำสั่งเช่นนี้

fsarchiver -A -j 2 -z 1 savefs /media/anwar/USB_Drive/myrootpartition /dev/sda1

-Aตัวเลือกที่ช่วยให้คุณสามารถคัดลอกพาร์ทิชันถึงแม้ว่ามันจะถูกนำมาใช้! คุณสมบัติที่ยอดเยี่ยม!

-j 2บอกว่าจะใช้ 2 CPU core สำหรับการบีบอัด มีประโยชน์สำหรับซีพียูแบบหลายแกนและถ้าคุณใช้การบีบอัด

-z 1 ตั้งค่าระดับการบีบอัด

ในการกู้คืนระบบไฟล์ที่คุณใช้

fsarchiver restfs /data/myrootpartition.fsa id=0,dest=/dev/sda2

ข้อความแจ้งid=0ว่าคุณกำลังกู้คืนระบบไฟล์แรกจากไฟล์เก็บถาวร (แม้ว่าคุณจะไม่ได้บันทึกหลายพาร์ติชันในไฟล์เก็บถาวรเดียว แต่คุณต้องระบุ) และdest=/dev/sda2กำหนดปลายทางของการฟื้นฟู


0

ฉันทำสิ่งนี้มากโดยใช้ rsync

ก่อนอื่นคุณสามารถเรียกใช้ rsync เพื่อโหลดข้อมูลทั้งหมดไปยังฮาร์ดไดรฟ์ภายนอก (ฮาร์ดไดรฟ์ภายนอกของคุณควรอยู่ใน ext4 - ฉันใช้มันดังนั้นฉันรู้ว่ามันใช้งานได้): ฉันถือว่าคุณมีสองพาร์ติชัน: / dev / sda1 (root) และ / dev / sda2 (สลับ)

ทำงานในคอมพิวเตอร์เครื่องเดิมของคุณ:

sudo rsync -avuorpESHAX /* /your/hard/drive

หลังจากคัดลอกข้อมูลแล้วให้บูตคอมพิวเตอร์เครื่องต่อไปของคุณด้วยแท่ง usb และฟอร์แมตฮาร์ดไดรฟ์ภายในเป็นฮาร์ดไดรฟ์ดั้งเดิม

ใส่ไดรฟ์ภายนอกของคุณไปที่/mntและคัดลอก UUID ของพาร์ติชันทั้งหมด แก้ไข UUID ของพาร์ติชั่นของคอมพิวเตอร์ใหม่และใส่ UUIDs เดียวกับที่คุณคัดลอกมาจากข้อมูลดั้งเดิม (มันมีอยู่/mnt/etc/fstab)

ปิดการสลับ:

sudo swapoff -a

สร้างการแลกเปลี่ยนใหม่โดยใช้ UUID ดั้งเดิมคัดลอกมาจาก/mnt/etc/fstab:

sudo mkswap /dev/sda2 -U original-UUID

(ฉัน supose แลกเปลี่ยนของคุณอยู่ใน/dev/sda2)

ถัดไปเปลี่ยน UUID เป็น/dev/sda1: (พาร์ติชันควรถูกถอดออกเพื่อเปลี่ยน UUIDs)

sudo umount /mnt
sudo tune2fs /dev/sda1 -U old-UUID

ทำสิ่งนี้ติดพาร์ทิชันปลายทาง:

sudo mount /dev/sda1 /mnt

ย้อนกลับ rsync ไปยังปลายทาง:

sudo rsync -avuorpESHAX /media/your-backup /mnt

ติดตั้งด้วงใหม่:

sudo grub-install --root-directory /mnt /dev/sda

สิ่งนี้จะได้ผล อย่าลืมแก้ไข/etc/hostnameและ/etc/hostsเปลี่ยนชื่อโฮสต์สำหรับแต่ละเครื่องเพื่อหลีกเลี่ยงความขัดแย้งของเครือข่าย


-1

ไม่เคยทำมาก่อนในสถานการณ์นี้ (ฉันไม่มีเซิร์ฟเวอร์นับร้อย - ฉันมักจะใช้ภาพฐานเสมอ) ฉันจะให้สัญชาตญาณลำไส้ของคุณเท่านั้น

นอกจากนั้นฉันจะบอกว่า netboot น่าจะเป็นทางออกที่ดีที่สุดของคุณ สร้างเซิร์ฟเวอร์หลักทำในสิ่งที่คุณต้องการจากนั้นให้บูตเครื่องอื่นทั้งหมดของคุณและติดตั้งจากมัน การเขียนสคริปต์สิ่งที่จะเกิดขึ้นโดยอัตโนมัติ (โดยเรียกใช้ครั้งเดียว) ไม่ควรยากเกินไป คุณทำทุกสิ่งที่สองผ่านการเริ่มต้น

เพิ่มเติม (แม้ว่าจะเก่าไปหน่อย): https://help.ubuntu.com/community/PXEInstallServer

แก้ไข: มีแอปพลิเคชันที่เรียกsystem-config-kickstartว่าน่าจะช่วยให้การสร้างไฟล์ kickstart ง่ายขึ้นเล็กน้อย YMMV

ข้อความแสดงแทน


เท่าที่ผมรู้ว่านี้จะทำมาเป็นพิเศษสำหรับsystem-config-kickstart fedora
Shaharia Azam

-1

อีกตัวเลือกหนึ่งสำหรับการติดตั้งจำนวนมากคือUbuntu Landscape / private cloud approach ซึ่งคุณ (โดยพื้นฐาน) เซิร์ฟเวอร์การจัดเตรียมตามแบบไดนามิกโดยอาศัยกลุ่มของฮาร์ดแวร์ สิ่งที่ฉลาด

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