>scsi 16:0:0:0: Direct-Access BUFFALO External HDD 0000 PQ: 0 ANSI: 5
>sd 16:0:0:0: [sdb] 732566646 4096-byte hardware sectors (3000593 MB)
>sd 16:0:0:0: [sdb] Write Protect is off
>sd 16:0:0:0: [sdb] Assuming drive cache: write through
> sdb: unknown partition table
I found the reason of this 'sdb: unknown partition table' message.
According to Wikipedia, GUID partition contains its signature "EFI PART" at head of partition table.
http://en.wikipedia.org/wiki/GUID_Partition_Table
Suppose hard drive data has its own address in sequence, say MBR is 0x0000 to 0x01FF and next data is 0x0200.
On the 512B/sector drive contains "EFI PART" at 0x0200 while 4KiB/sector drive contains at 0x1000.
----
# hexdump -C /dev/sdb
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001c0 01 00 ee fe ff ff 01 00 00 00 75 14 aa 2b 00 00 |..........u..+..|
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00001000 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00 |EFI PART....\...|
00001010 34 7f 76 bb 00 00 00 00 01 00 00 00 00 00 00 00 |4.v.............|
----
Linux kernel checks drive's partition signature only at 0x0200 and reports that this drive doesn't have EFI partition.
Parted writes GPT at 'LBA1', but it is different place on 512B/sect drive and 4KiB/sect drive.
And Linux kernel checks only at 0x0200.
I believe this problem is caused by 4KiB sector and this problem is only resolved by changing the sector size which this drive reports to Linux (maybe need a SCSI command?).
Could anybody tell me the Linux tool which can change the logical sector size ?
Thanks.