Dd

如何調整磁碟映像設備的大小?

  • April 10, 2013

我正在嘗試減小備份驅動器映像的大小。原始磁碟具有以下分區:

Model: ST916082 1A (scsi)
Disk /dev/sde: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
1      32.3kB  65.7GB  65.7GB  primary   ntfs         boot
2      65.7GB  160GB   94.4GB  extended               lba
5      65.7GB  160GB   94.4GB  logical   ntfs

映像是使用命令從邏輯分區創建的

> sudo ddrescue /dev/sde5 datapartition logfile

Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:         0 B,  errsize:       0 B,  errors:       0
Current status
rescued:    94368 MB,  errsize:       0 B,  current rate:   23068 kB/s
  ipos:    94368 MB,   errors:       0,    average rate:   28839 kB/s
  opos:    94368 MB,     time from last successful read:       0 s
Finished

ntfsresize -i -f datapartition說:

ntfsresize v2012.1.15AR.5 (libntfs-3g)
Device name        : datapartition
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 26999992832 bytes (27000 MB)
Current device size: 94368605184 bytes (94369 MB)
Checking filesystem consistency ...
100.00 percent completed
Accounting clusters ...
Space in use       : 26107 MB (96.7%)
Collecting resizing constraints ...
You might resize at 26106810368 bytes or 26107 MB (freeing 893 MB).
Please make a test run using both the -n and -s options before real resizing!

所以看起來我已經調整了文件系統的大小以適應數據,但沒有調整設備的大小?(這是 2 年前的事了,我忘了。)而且我需要使用 fdisk 調整設備的大小,對嗎?但 fdisk 無法辨識分區:

> fdisk -lu datapartition 

Disk datapartition: 94.4 GB, 94368605184 bytes
255 heads, 63 sectors/track, 11472 cylinders, total 184313682 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x69205244

This doesn't look like a partition table
Probably you selected the wrong device.

       Device Boot      Start         End      Blocks   Id  System
datapartition1   ?   218129509  1920119918   850995205   72  Unknown
datapartition2   ?   729050177  1273024900   271987362   74  Unknown
datapartition3   ?   168653938   168653938           0   65  Novell Netware 386
datapartition4      2692939776  2692991410       25817+   0  Empty

Partition table entries are not in disk order

cfdisk 也沒有:

> cfdisk datapartition 

FATAL ERROR: Bad primary partition 1: Partition begins after end-of-disk
                     Press any key to exit cfdisk

不過,我可以掛載分區並從中復製文件。如何調整設備大小?

如果只是分區的轉儲,則沒有分區表。分區就是文件,你只需要收縮文件:

truncate -s 27000832000 datapartition

(為了安全起見,27000832000 是 26999992832 向上舍入到下一個 MiB,您是否希望將其壓縮為某種qcow2格式或任何其他可安裝的壓縮格式)

你可能想給gparted看看。當我們想要調整不同類型的分區大小時,我們通常會使用這個實時發行版。

gparted 的範例截圖

                              gparted #1 的 ss

                              gparted #2的ss

請查看本教程以獲取更多詳細資訊。

引用自:https://unix.stackexchange.com/questions/71892