Debian 挂载移动硬盘后部分分区无法识别
有一块新买的1T的移动硬盘。买来格式化成ntfs后简单的分了几次区。 4G的硬盘PE,100G的快速交互,剩余800多G分成了两个对等的存储盘。
插到电脑USB接口后, 桌面自动弹出了4个盘符。 打开前2个都没有什么问题, 写读都正常。后面两个一双击就会报错:
Error mounting: mount exited with exit code 1: helper failed with:
Unprivileged user can not mount NTFS block devices using the external FUSE
library. Either mount the volume as root, or rebuild NTFS-3G with integrated
FUSE support and make it setuid root. Please see more information at
http://tuxera.com/community/ntfs-3g-faq/#unprivileged
大意就是这个ntfs-3g 没权限无法挂载,不管是不是root 。
现在我们来解决掉这个问题:
首先看看挂载, 先拔掉移动硬盘 执行 再插上执行, 会发现多了sdb3,sdb5
root@debian:/# cat /etc/mtab
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=10240k,nr_inodes=1015602,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=813700k,mode=755 0 0
/dev/disk/by-uuid/4c487d8c-396c-4601-b76d-eff7118d6775 / ext4 rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
tmpfs /run/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=4446660k 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
/dev/sdb3 /media/PE vfat rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=cp437,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro 0 0
/dev/sdb5 /media/T1 fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 0 0
可以看到sdb是我的移动硬盘的, 但是只挂载了2个盘符。
查看下硬盘现状
fdisk -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xb73dddb4
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 209719295 104858624 7 HPFS/NTFS/exFAT
Partition 2 does not start on physical sector boundary.
/dev/sda3 1258387456 1925328895 333470720 83 Linux
/dev/sda4 1925330944 1953523711 14096384 82 Linux swap / Solaris
Disk /dev/sdb: 1000.2 GB, 1000204138496 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953523708 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
Disk identifier: 0x6b7612b3
Device Boot Start End Blocks Id System
/dev/sdb1 209921355 839685419 314882032+ 7 HPFS/NTFS/exFAT
/dev/sdb2 839685420 1953520064 556917322+ 7 HPFS/NTFS/exFAT
/dev/sdb3 63 8401994 4200966 b W95 FAT32
/dev/sdb4 8401995 209921354 100759680 f W95 Ext'd (LBA)
/dev/sdb5 8402058 209921354 100759648+ 7 HPFS/NTFS/exFAT
Partition table entries are not in disk order
注意看, 这里识别了Disk /dev/sdb 1000.2 GB
但是挂载出错了。 下面报了一个错,
Partition table entries are not in disk order
说硬盘分区表不在硬盘的顺序里面,意思就是移动硬盘的分区表乱了,
既然是这样就简单了, 用fdisk来重建分区表即可, fdisk 挂载设备, 然后f w 就可以更新分区表了。
root@debian:/# fdisk /dev/sdb
Command (m for help): x
Expert command (m for help): f
Done.
Expert command (m for help): m
Command action
b move beginning of data in a partition
c change number of cylinders
d print the raw data in the partition table
e list extended partitions
f fix partition order
g create an IRIX (SGI) partition table
h change number of heads
i change the disk identifier
m print this menu
p print the partition table
q quit without saving changes
r return to main menu
s change number of sectors/track
v verify the partition table
w write table to disk and exit
Expert command (m for help): p
Disk /dev/sdb: 255 heads, 63 sectors, 121601 cylinders
Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID
1 00 1 1 0 254 63 522 63 8401932 0b
2 00 0 1 523 254 63 1023 8401995 201519360 0f
3 00 254 63 1023 254 63 1023 209921355 629764065 07
4 00 254 63 1023 254 63 1023 839685420 1113834645 07
5 00 1 1 523 254 63 1023 63 201519297 07
Expert command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
这里就更新成功了分区表, 因为我这是移动硬盘,上面并没有挂载操作系统OS, 所以不需要更新挂载/etc/fstab 和/boot/grub/menu.list 这几个文件的对应挂载。
再次执行fdisk -l 发现已经成功挂载, 直接桌面可以直接点进去了。
Disk /dev/sdb: 1000.2 GB, 1000204138496 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953523708 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
Disk identifier: 0x6b7612b3
Device Boot Start End Blocks Id System
/dev/sdb1 63 8401994 4200966 b W95 FAT32
/dev/sdb2 8401995 209921354 100759680 f W95 Ext'd (LBA)
/dev/sdb3 209921355 839685419 314882032+ 7 HPFS/NTFS/exFAT
/dev/sdb4 839685420 1953520064 556917322+ 7 HPFS/NTFS/exFAT
/dev/sdb5 8402058 209921354 100759648+ 7 HPFS/NTFS/exFAT
df 看下挂载点成功挂载
root@debian:/# df
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 328236772 10801844 300761392 4% /
udev 10240 0 10240 0% /dev
tmpfs 813700 972 812728 1% /run
/dev/disk/by-uuid/4c487d8c-396c-4601-b76d-eff7118d6775 328236772 10801844 300761392 4% /
tmpfs 5120 0 5120 0% /run/lock
tmpfs 4446660 26196 4420464 1% /run/shm
/dev/sdb1 4192756 578312 3614444 14% /media/usb0
/dev/sdb5 100759648 14680144 86079504 15% /media/T1
/dev/sdb3 314882032 35480048 279401984 12% /media/T2
/dev/sdb4 556917320 193748248 363169072 35% /media/T3