คำถามติดแท็ก sparse-files

8
โคลนพาร์ติชั่นหรือฮาร์ดไดรฟ์ทั้งไฟล์
ฉันชอบโคลนพาร์ติชันทั้งหมดหรือฮาร์ดไดรฟ์ทั้งหมดลงบนดิสก์ภายนอกที่มีขนาดใหญ่กว่า แต่ต้องการสร้างไฟล์ที่กระจัดกระจาย ฉันมักจะใช้ddสำหรับการโคลน แต่มันไม่รองรับไฟล์ที่กระจัดกระจาย เป็นวิธีแก้ปัญหาฉันใช้สิ่งที่ชอบ: cp --sparse=always <(dd if=/dev/sda1 bs=8M) /mount/external/backup/sda1.raw อย่างไรก็ตามนี่เป็นเรื่องยุ่งยากเล็กน้อยสำหรับรสนิยมของฉันและไม่อนุญาตให้ฉันดำเนินการต่อหากยกเลิก เป็นเรื่องตลกที่มีเครื่องมือ NTFS สำหรับสิ่งนี้ ( ntfsclone) แต่ไม่มีเครื่องมือดังกล่าวสำหรับระบบไฟล์ดั้งเดิมของ Linux (EXT2-4) มีเครื่องมือที่ดีกว่าสำหรับสิ่งนี้เช่นddตัวแปรที่มีการสนับสนุนเบาบาง? ฉันไม่ได้มองหาซอฟต์แวร์ที่เป็นกรรมสิทธิ์สำหรับการสำรองข้อมูลดิสก์ แต่เพียงต้องการทำสำเนาโคลนแบบเบาบางซึ่งฉันสามารถติดตั้งเป็นอุปกรณ์วนรอบหากจำเป็น

4
ไฟล์ที่กระจัดกระจายเดิมและจากนั้นจะสามารถทำให้กระจัดกระจายอีกครั้ง?
ฉันรู้ว่าการคัดลอกหรือถ่ายโอนสิ่งที่เดิมเป็นไฟล์หร็อมแหร็มโดยไม่ต้องใช้ยูทิลิตี้ที่เข้าใจไฟล์กระจัดกระจายจะทำให้ 'หลุม' ถูกเติมเต็ม มีวิธีการหรือยูทิลิตี้เพื่อเปลี่ยนสิ่งที่ครั้งหนึ่งเคยเป็นไฟล์กระจัดกระจาย ตัวอย่างเช่น: สร้างไฟล์ sparse: % dd if=/dev/zero of=TEST bs=1 count=0 seek=1G # do some op that pads out the holes % scp TEST localhost:~/TEST2 % ls -lhs TEST* 0 -rw-rw-r--. 1 tony tony 1.0G Oct 16 13:35 TEST 1.1G -rw-rw-r--. 1 tony tony 1.0G Oct 16 13:37 …

3
คุณจะตัดแต่งไฟล์โดยใช้บรรทัดคำสั่งได้อย่างไร
อะไรคือสิ่งที่เทียบเท่าคอนโซลของรหัสหลามต่อไปนี้: target = file("disk", "w") # create a file target.seek(2*1024*1024*1024) # skip to 2 GB target.write("\0") target.close() อาจจะมีคาถา DD แนวคิดคือการสร้างไฟล์ที่มีขนาดชัดเจน 2 GB สำหรับการใช้งานเช่นในการจำลองเสมือน kvm disk -cd whatever.iso #Only allocate space as necessary
18 files  dd  sparse-files 

4
การสร้างไฟล์“ ปลอม” ที่มีขนาดใหญ่ตามอำเภอใจ
ฉันต้องการสร้างไฟล์พิเศษที่คล้ายกับ/dev/nullหรือ/dev/randomที่ไฟล์ไม่ได้มีอยู่จริง แต่คุณสามารถอ่านได้เหมือนกันทั้งหมดยกเว้นว่าฉันสามารถตั้งค่าสูงสุดตามขนาดไฟล์ที่ชัดเจน หากต้องการใส่อีกวิธีหนึ่งฉันต้องการสร้างไฟล์พิเศษที่ (สมมติว่าฉันตั้งค่าฝา 500GB) เมื่อฉัน "cat" ไฟล์มันจะส่งออกไฟล์ทั้งหมด 500GB แล้วหยุด มันต้องทำหน้าที่เหมือนกับไฟล์จริง 500GB แต่ไม่มีการเว้นวรรค เนื้อหาของไฟล์นี้ไม่สำคัญอาจเป็นได้ทุก\0อย่าง/dev/nullหรือแค่สายเล็ก ๆ ที่ถูกส่งซ้ำไปซ้ำมาหรืออะไรก็ตาม นี่เป็นสิ่งที่ทำได้หรือไม่? สิ่งเดียวที่อยู่ใกล้ฉันได้จากระยะไกลคือหน้าคนที่พูดถึงmknodแต่คนเหล่านั้นไม่ค่อยมีประโยชน์

3
ฉันจะส่งออก“ กระจาย” ไฟล์ได้อย่างไร
ฉันจะส่งออกขนาดข้อมูลระบุขนาดไฟล์ที่เต็มไปด้วยข้อมูลจริงได้อย่างไร กด Like vmtouchแสดงจำนวนไฟล์ในหน่วยความจำในปัจจุบัน ... ฉันคาดว่าเวิร์กโฟลว์จะเป็นเช่นนี้: $ fallocate -l 1000000 data $ measure_sparseness data 100% $ fallocate -p -o 250000 -l 500000 data $ measure_sparseness 50% การแก้ปัญหา: การใช้งานdu -bshและdu -shและเปรียบเทียบ

1
สิ่งใดที่สามารถอธิบายการจัดการไฟล์ที่กระจัดกระจายของ / in tmpfs นี้ได้
ในext4พาร์ติชันระบบแฟ้มของฉันฉันสามารถเรียกใช้รหัสต่อไปนี้: fs="/mnt/ext4" #create sparse 100M file on ${fs} dd if=/dev/zero \ of=${fs}/sparse100M conv=sparse seek=$((100*2*1024-1)) count=1 2> /dev/null #show its actual used size before echo "Before:" ls ${fs}/sparse100M -s #setting the sparse file up as loopback and run md5sum on loopback losetup /dev/loop0 ${fs}/sparse100M md5sum /dev/loop0 #show its actual used size …

3
รายละเอียดข้อมูลไฟล์กระจัดกระจายบน Linux
ฉันมีไฟล์กระจัดกระจายซึ่งมีการจัดสรรบล็อกเพียงบางส่วนเท่านั้น: ~% du -h --apparent-size example 100K example ~% du -h example 52K example ฉันต้องการทราบว่าบล็อกใดของไฟล์ที่ถูกจัดสรรจริง มีการเรียกระบบหรือส่วนต่อประสานเคอร์เนลที่สามารถใช้เพื่อรับรายการการจัดสรรหรือรูของไฟล์หรือไม่? เพียงตรวจสอบสตริงศูนย์ที่ยาวพอ (วิธีที่ GNU cp, rsync ฯลฯ ใช้) ทำงานไม่ถูกต้อง: ~% cp example example1 ~% du -h example1 32K example1 ตรวจพบลำดับอื่นของศูนย์ที่จัดสรรจริง

1
มีข้อเสียใด ๆ ของ `cp --sparse = always` หรือไม่?
มีเหตุผลใด ๆไม่ได้ที่จะใช้การใช้งาน--sparse=alwaysด้วยการภาวนาทุกcp? info cp พูดว่า: ‘--sparse=WHEN’ A “sparse file” contains “holes”—a sequence of zero bytes that does not occupy any physical disk blocks; the ‘read’ system call reads these as zeros. This can both save considerable disk space and increase speed, since many binary files contain lots of consecutive zero …

2
วิธีที่จะทำให้ระบบไฟล์ ext4 กระจัดกระจาย?
ฉันใช้ Linux เป็น guest OS ใน VirtualBox ฉันลบไฟล์จำนวนมากออกจากระบบไฟล์ ตอนนี้ฉันต้องการลดขนาดไฟล์อิมเมจระบบไฟล์ (vdi) การย่อขนาดทำงานโดยการบีบอัดอิมเมจระบบไฟล์ทุกที่ที่มีค่า "null" ในดิสก์ ดูเหมือนว่าแอปพลิเคชันที่ชื่อว่าzerofreeสามารถเขียน "null" ลงในพื้นที่ว่างของระบบไฟล์ในแบบที่มันกระจัดกระจาย แต่คำแนะนำบอกว่ามันใช้งานได้กับ ext2 / ext3 เท่านั้น ฉันมี ext4 ในระบบปฏิบัติการแขกของฉัน ทำไมมันถึงใช้งานไม่ได้กับ ext 4 (เหตุผลที่อ้างถึงคือ "extents" แต่ใครบางคนสามารถทำให้กระจ่างขึ้นได้) มันจะใช้งานได้หรือไม่ถ้าฉันต่อ ext 4เป็นext 3แล้วนับใหม่เป็นext 4 ? มีเครื่องมืออื่นใดที่สามารถทำสิ่งที่คล้ายกันเป็น zerofree บน ext?

2
ฉันจะเพิ่มความเร็วการดำเนินงานในไฟล์แบบกระจายด้วย tar, gzip, rsync ได้อย่างไร
ฉันมีไฟล์หร็อมแหร็ม ( du -hรายงาน 3G และdu -h --apparent-sizeรายงาน 100G) จนถึงตอนนี้ดีมาก ตอนนี้เมื่อฉันต้องการบีบอัดไฟล์โดยใช้tarหรือส่งผ่านเครือข่ายที่ใช้rsyncก็จะต้องใช้เวลามากเท่า 3G ดูเหมือนว่าเครื่องมือเหล่านี้อ่านค่าศูนย์ทั้งหมด ฉันคิดว่ารูเหล่านั้นถูกทำเครื่องหมายอย่างใดและเครื่องมือเหล่านี้สามารถข้ามมันได้ มีแนวโน้มว่าจะไม่มีปัญหากับไฟล์ของฉัน? นี่เป็นคุณสมบัติที่ขาดหายไปในtarหรือrsyncไม่ค้นหาไฟล์ที่กระจัดกระจายหรือไม่? ฉันใช้tarพารามิเตอร์--sparseแต่นั่นก็ไม่ได้ทำให้เร็วขึ้น ก็ไม่พารามิเตอร์rsync--sparse มีวิธีใดที่จะเพิ่มความเร็วเครื่องมือเหล่านี้ในไฟล์ที่กระจัดกระจาย?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.