有很多平时配置的细节都丢失了。。需要趁机记录一下,防止以后全忘了。

1 sector = 1 LBA = 512 Bytes

1 block = 1 KiB

mdadm 可以用来管理软件 raid。

1
mdadm -C /dev/md0 -l raid0 -n 2 /dev/sdX /dev/sdY

有的时候需要单独操作 /dev/sdX,此时就需要:

1
mdadm --stop /dev/md0

然后设备就消失了。之后依然可以用相同的办法重建,但不知道是否需要用相同的顺序。

1
mdadm -D /dev/md0

显示 raid 的信息。

直接在设备上创建 ext4 文件系统实操不行,必须要有分区表;必须要创建至少一个分区。

重新组装 raid:

1
mdadm --assemble /dev/md0 /dev/sdX /dev/sdY

保存当前 raid 配置,并自动执行:

1
mdadm -E -s -v >> /etc/mdadm/mdadm.conf

注意记得修改 /etc/fstab

如果 raid 出了问题,记得加 ro 挂载为只读

1
mount -o ro /dev/md0p1 /mnt/storage

一些其他文件系统的操作:

查看文件占用的扇区号:

1
debugfs -R "stat /path" /dev/blockdevice
1
hdparm --fibmap /path

扫描坏扇区(这次不知道为什么,屁都没扫到):

non-destructive write test:

1
badblocks -svn -o output_file /dev/sdXn

read-only test:

1
badblocks -sv -o output_file /dev/sdXn

查看占用文件的进程(和 lsof 有什么区别?)

1
2
3
fuser -m path
# kill all
fuser -m -v -i -k path # interactive

fuser is more useful in identifying process id opening a particular file. lsof is useful to find out all file(s) opened by particular process. Save this answer.

写入卡住了,想找坏道,但是没找到,然后发现它自己好了。。