在划分磁盘分区时,遇到错误“WARNING: Re-reading the partition table failed with error 22: Invalid argument” 如下所示:
[root@DB-Server u02]# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 60801 488279610 8e Linux LVM
[root@DB-Server u02]# fdisk /dev/sda2
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 60788.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1-60788, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-60788, default 60788):
Using default value 60788
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table.
The new table will be used at the next reboot.
出现这个错误,是因为没有在有效的设备(valid device)上进行分区操作(太久没有玩这台测试服务器了,忘记当初如何划分存储,测试一个备份的过程急于需要磁盘空间,没有检查情况,就动手了),实际上这个分区类型为 Linux LVM。已经划给VolGroup00了。后续处理如下。
[root@DB-Server ~]# pvscan
PV /dev/sda2 VG VolGroup00 lvm2 [465.66 GB / 413.94 GB free]
Total: 1 [465.66 GB] / in use: 1 [465.66 GB] / in no VG: 0 [0 ]
[root@DB-Server ~]# lvscan
ACTIVE '/dev/VolGroup00/LogVol00' [45.97 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol01' [5.75 GB] inherit
[root@DB-Server ~]# more /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
[root@DB-Server ~]# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 465.66 GB
PE Size 32.00 MB
Total PE 14901
Alloc PE / Size 1655 / 51.72 GB
Free PE / Size 13246 / 413.94 GB
VG UUID EYKFmq-O1Ko-0z94-Os3P-AKfC-0bG9-9oTQDh
[root@DB-Server ~]# lvextend -L 80G /dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 80.00 GB
Logical volume LogVol00 successfully resized
[root@DB-Server ~]# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 20971520 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 20971520 blocks long.
[root@DB-Server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
78G 32G 42G 44% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 1.9G 1023M 916M 53% /dev/shm
/tmp/rhel-server-5.7-x86_64-dvd.iso
3.6G 3.6G 0 100% /mnt/cdrom
[root@DB-Server ~]#