When working with large filesystems like a 1TB ext3 partition, resize2fs
performs several critical operations:
# Typical resize2fs command structure resize2fs /dev/sdXN 50G
The duration depends on multiple variables:
- Filesystem metadata complexity
- Data distribution across the partition
- Disk I/O performance (HDD/SSD)
- CPU processing power
For a 1TB → 50G resize with 30G data:
Phase | Duration | Indicators |
---|---|---|
Initial data movement | 15-30 mins | Intense disk activity |
Metadata processing | 1-4 hours | High CPU, low disk I/O |
Finalization | 10-30 mins | Brief disk activity |
Use these commands to check progress:
# Check filesystem status dumpe2fs -h /dev/sdXN | grep -i 'block count' # Monitor I/O activity iostat -x 5
If resize appears frozen:
- Verify process status:
ps aux | grep resize2fs
- Check kernel messages:
dmesg | tail -20
- Force a filesystem check:
e2fsck -f /dev/sdXN
Consider this more robust method:
# Create physical volume pvcreate /dev/sdXN # Create volume group vgcreate vg0 /dev/sdXN # Create logical volumes lvcreate -L 50G -n lv_root vg0 lvcreate -L 30G -n lv_home vg0
- Run operations during low system load
- Use
ionice
for better I/O scheduling - Consider temporary disabling journaling:
tune2fs -O ^has_journal /dev/sdXN
When resizing an ext3 filesystem from 1TB to 50GB, the operation involves multiple complex steps:
- Filesystem consistency checks
- Inode table reorganization
- Data block relocation
- Superblock updates
The time required depends on several technical aspects:
resize_time = f(disk_speed, CPU_power, fragmentation_level, data_amount)
For a typical scenario with:
- 30GB actual data
- 7200 RPM HDD
- Modern quad-core CPU
Expect 2-6 hours for complete operation.
Instead of relying on HD noise, use these technical methods:
# Check process status
ps aux | grep resize2fs
# Monitor disk I/O
iostat -x 1
# Check filesystem operations
strace -p [resize2fs_pid]
If resize2fs appears frozen:
- Verify it's actually running:
pgrep resize2fs
- Check kernel messages:
dmesg | tail -20
- Inspect I/O wait:
vmstat 1
For faster resizing:
# 1. Run fsck first
e2fsck -f /dev/sdXN
# 2. Use nohup for stability
nohup resize2fs /dev/sdXN 50G &
# 3. Prioritize I/O (if using CFQ scheduler)
ionice -c2 -n0 -p [resize2fs_pid]
Consider this more flexible workflow:
# Create physical volume
pvcreate /dev/sdXN
# Create volume group
vgcreate vg0 /dev/sdXN
# Create logical volumes
lvcreate -L 50G -n lv_root vg0
lvcreate -L 100G -n lv_home vg0