Chinaunix首页 | 论坛 | 博客
  • 博客访问: 539721
  • 博文数量: 375
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-20 10:21
文章分类

全部博文(375)

文章存档

2015年(1)

2014年(374)

分类: LINUX

2014-08-18 11:05:45

原文地址:[原创] raidtool 的一个技巧 作者:ailms

问题 :如果一个 RAID-1 的第一个设备有数据,用 mkraid –R 会把第一个盘的数据清空吗?

[答案] :


不会。而是会把第一个盘的内容(就是整个文件系统)都拷贝到第2个盘了。

这样就可以不用对 /dev/md0 设备执行 mkfs 了,也就不会丢失数据了。

 

[root@mail root]# mkraid -R /dev/md0

DESTROYING the contents of /dev/md0 in 5 seconds, Ctrl-C if
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/hda8, 104391kB, raid superblock at 104320kB
disk 1: /dev/hdb6, 104359kB, raid superblock at 104256kB
[root@mail root]# mount /dev/md0 /mnt/cdrom

[root@mail root]# cd /mnt/cdrom

[root@mail cdrom]# ll

total 180
-rw-r--r-- 1 bob bob 170253 Mar 26 22:18 IOzone_msword_98.pdf // 可以看到原来的数据还在
drwx------ 2 root root 12288 Mar 26 22:17 lost+found

[root@mail cdrom]#

[root@mail cdrom]# fdisk -l


Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot Start End Blocks Id System
/dev/hda1 * 1 765 6144831 b Win95 FAT32
/dev/hda4 766 9729 72003330 f Win95 Ext'd (LBA)
/dev/hda5 766 778 104391 83 Linux
/dev/hda6 779 1224 3582463+ 83 Linux
/dev/hda7 1225 1289 522081 82 Linux swap
/dev/hda8 1290 1302 104391 83 Linux

Disk /dev/hdb: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot Start End Blocks Id System
/dev/hdb1 * 1 9729 78148161 f Win95 Ext'
d (LBA)
/dev/hdb5 405 5503 40957686 7 HPFS/NTFS
/dev/hdb6 1 13 104359+ fd Linux raid autodetect

Partition table entries are not in disk order
[root@mail cdrom]



现在把 /dev/hda8 改为 0xFD ,再重启。

总结 :

-)1、仍然可以挂载和访问,说明在创建 RAID-1 时,并不一定会摧毁数据,如果第一个盘有文件系统存在,会被拷贝到第2个盘。

-)2、如果把空白盘做为第一个设备,则会摧毁原来的数据。所以如果你想保留文件系统,一定要注意顺序。


# 问题 :对于 RAID-1 来说,由于 mkraid 会对设备写 superblock ,是否会造成原来的文件系统出现问题呢?

[答案] :

有问题,就是 superblock 和物理大小不一致。

[root@mail root]# umount /mnt/cdrom

[root@mail root]# e2fsck -f /dev/md0

e2fsck 1.32 (09-Nov-2002)
The filesystem size (according to the superblock) is 104391 blocks
The physical size of the device is 104256 blocks
Either the superblock or the partition table is likely to be
Abort<y>? no // 此处选 n

Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/md0: 12/26104 files (0.0% non-contiguous), 7597/104391 blocks
[root@mail root]#

但并不是这样就可以了,如果就这样退出,下次执行 e2fsck 还是会报同样的错误,必须把文件系统也改变
首先我们需要 resize2fs 这个工具,它是来自于下面的 rpm 包 :
[root@mail root]# which resize2fs

/sbin/resize2fs
[root@mail root]# rpm -qf $(which resize2fs)

e2fsprogs-1.32-6
[root@mail root]#

[root@mail root]# resize2fs /dev/md0

resize2fs 1.32 (09-Nov-2002)
The filesystem on /dev/md0 is now 104256 blocks long.

[root@mail root]#、

现在再执行 fsck 就不同了 :
[root@mail root]# fsck /dev/md0

fsck 1.32 (09-Nov-2002)
e2fsck 1.32 (09-Nov-2002)
/dev/md0: clean, 12/26104 files, 7597/104256 blocks
[root@mail root]


整个过程到此结束,现在就可以重启了。
阅读(793) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~