作者:E4b9a6, 创建:2024-08-12, 字数:4363, 已阅:172, 最后更新:2024-08-12
在迁移 Linux 系统到新硬盘后,使用 df -h
打印大小,发现仍然显示原硬盘的大小
假设有2张存储卡,卡1安装了一个 Linux 系统(大小8G),卡2是等待迁移的新卡(大小64G)
将它们插入到一台 PC 中,并启动 fdisk
打印信息如下:
$ sudo fdisk -l
...
Disk /dev/sda: 7.32 GiB, 7864320000 bytes, 15360000 sectors
Disk model: MassStorageClass
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x96247f4d
Device Boot Start End Sectors Size Id Type
/dev/sda1 32768 15040511 15007744 7.2G 83 Linux
Disk /dev/sdb: 59.64 GiB, 64034439168 bytes, 125067264 sectors
Disk model: MassStorageClass
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 125067230 125065183 59.6G c W95 FAT32 (LBA)
使用 dd 将/dev/sda
内的Linux系统迁移到 /dev/sdb
上
sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress
确保迁移数据全部写入
sudo sync
将卡2插入设备中并开机,开机无误后查看系统盘大小:
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 415M 0 415M 0% /dev
tmpfs 98M 1.9M 96M 2% /run
/dev/mmcblk0p1 7.1G 1.8G 5.2G 26% /
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 488M 4.0K 488M 1% /tmp
/dev/zram1 47M 11M 33M 25% /var/log
tmpfs 98M 0 98M 0% /run/user/0
/dev/mmcblk0p1
依然是原始卡1的8G大小,这是因为系统是原封不动的迁移,所以分区表信息没有变化
使用 fdisk
来确认当前硬盘的真实大小:
$ fdisk -l
Disk /dev/mmcblk0: 59.64 GiB, 64034439168 bytes, 125067264 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
Disklabel type: dos
Disk identifier: 0x96247f4d
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 32768 125067263 125034496 59.6G 83 Linux
...
使用 fdisk
结合 resize2fs
调整分区大小,并扩展文件系统以利用整个硬盘的空间
fdisk /dev/mmcblk0
启动fdisk程序,请确保是进入整个硬盘 mmcblk0
而不是 mmcblk0p1
p
查看分区表,记下起始扇区d
按确认删除分区,请不用担心,这不会删除分区上的数据,待会重新创建分区时使用相同的起始扇区即可n
创建分区,输入 p
表示是主分区,分区号默认 1
,然后输入先前的起始扇区,回车确认最大值作为结束扇区w
写入上述操作以上操作实践如下:
$ fdisk /dev/mmcblk0
Welcome to fdisk (util-linux 2.38.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.
Command (m for help): p
Disk /dev/mmcblk0: 59.64 GiB, 64034439168 bytes, 125067264 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
Disklabel type: dos
Disk identifier: 0x96247f4d
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 32768 15040511 15007744 7.2G 83 Linux
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-125067263, default 2048): 32768
Last sector, +/-sectors or +/-size{K,M,G,T,P} (32768-125067263, default 125067263):
Created a new partition 1 of type 'Linux' and of size 59.6 GiB.
Partition #1 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: y
The signature will be removed by a write command.
Command (m for help): w
The partition table has been altered.
Syncing disks.
再次查看系统盘分区是否变成 64G :
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 415M 0 415M 0% /dev
tmpfs 98M 2.0M 96M 3% /run
/dev/mmcblk0p1 59G 1.8G 57G 4% /
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 488M 4.0K 488M 1% /tmp
/dev/zram1 47M 12M 32M 27% /var/log
tmpfs 98M 0 98M 0% /run/user/0