我需要将大量数据从 Solaris 9 (Sparc) 系统复制到 SLES11 (x84_64) 系统。
Solaris系统相当老旧,通过网络传输数据需要几天的停机时间。
我的目标是将 LUN 从 SAN 分配到我的 Solaris 系统,以这种方式复制数据(通过结构而不是 LAN),然后将 LUN 重新分配到目标 Linux 系统。
我的问题是我似乎不知道如何从我的 Linux 机器上挂载 UFS 文件系统。
这是在 Solaris 上看到的当前分区表:
Volume name = < >
ascii name = <HITACHI OPEN-V -SUN 7006 ffe00000>
bytes/sector = 512
sectors = 4292870143
accessible sectors = 4292870110
Part Tag Flag First Sector Size Last Sector
0 root wm 34 128.00MB 262177
1 swap wu 262178 128.00MB 524321
2 unassigned wm 0 0 0
3 unassigned wm 0 0 0
4 unassigned wm 0 0 0
5 unassigned wm 0 0 0
6 usr wm 524322 2.00TB 4292853725
8 reserved wm 4292853726 8.00MB 4292870109
当我尝试在 Linux 系统上使用 fdisk 列出它时,我得到:
# fdisk -l /dev/sdl
Disk /dev/sdl: 2199.0 GB, 2199023255552 bytes
255 heads, 63 sectors/track, 267349 cylinders, total 4294967296 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: 0x00000000
Disk /dev/sdl doesn't contain a valid partition table
然而,设备映射器似乎知道分区(尽管它将它们偏移了 1):
lrwxrwxrwx 1 root root 7 Nov 5 13:30 /dev/mapper/360060e8006cfd3000000cfd300000087 -> ../dm-3
lrwxrwxrwx 1 root root 8 Nov 5 13:30 /dev/mapper/360060e8006cfd3000000cfd300000087_part1 -> ../dm-38
lrwxrwxrwx 1 root root 8 Nov 5 13:30 /dev/mapper/360060e8006cfd3000000cfd300000087_part2 -> ../dm-39
lrwxrwxrwx 1 root root 8 Nov 5 13:30 /dev/mapper/360060e8006cfd3000000cfd300000087_part7 -> ../dm-40
lrwxrwxrwx 1 root root 8 Nov 5 13:30 /dev/mapper/360060e8006cfd3000000cfd300000087_part9 -> ../dm-41
然后我尝试挂载文件系统,但结果是:
# mount -t ufs -o ro,ufstype=sun /dev/disk/by-id/scsi-360060e8006cfd3000000cfd300000087-part7 /ldev87
mount: wrong fs type, bad option, bad superblock on /dev/mapper/360060e8006cfd3000000cfd300000087_part7,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
dmesg 没有给我更多信息。每次我尝试安装时只需一行:
[173168.020980] ufs_read_super: bad magic number
我似乎支持 ufs 文件系统:
# grep ufs /proc/filesystems
ufs
# modinfo ufs
filename: /lib/modules/3.0.101-0.15-default/kernel/fs/ufs/ufs.ko
license: GPL
srcversion: 4BC9796D2E230B27387BE46
depends:
supported: yes
vermagic: 3.0.101-0.15-default SMP mod_unload modversions
signer: SUSE Linux Enterprise Secure Boot Signkey
sig_key: 3F:B0:77:B6:CE:BC:6F:F2:52:2E:1C:14:8C:57:C7:77:C7:88:E3:E7
sig_hashalgo: sha256
# less /proc/modules | grep ufs
ufs 79510 0 - Live 0xffffffffa07e4000
Linux 是否只能打开一定大小(小于 2TB)的 Sun 卷?或者我需要在 Solaris 系统上做一些特殊的事情来准备 Linux 系统可以读取的文件系统吗?
我希望有人有想法。
更新 对于任何遇到同样问题的未来访问者,我的问题似乎是 LUN 的大小。 2TB不行,1.8TB也不行,但是1TB可以用。我没有时间弄清楚实际的限制在哪里,但显然是有一个。