I've installed Debian on an USB hdd based on Martin Milchmayr's instructions. rootfs is ext3 (with 128bit Inodes). rootdelay is set to 10. Every time I do a cold boot (power on) the plug boots without any problem. When I shutdown the plug with "shutdown -r now", then the plug restarts, u-boot starts USB, find 2 devices, one storage device. Then it reports:
** Bad partition 1 **
** Bad partition 1 **
## Booting image at 00400000 ...
Bad Magic Number
The USB hdd is plugged directly into the SheevaPlug, no additional devices. Boot arguments exactly the same as in Martin Milchmayr's instructions. U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16.
When I compare the cold boot and reboot log files I observe, that there is a difference in one row:
Cold boot:
scanning bus for storage devices... 1 Storage Device(s) found
Reboot:
scanning bus for storage devices... T 1 Storage Device(s) found
There is an additinal "T" (like trouble, terror

). What does this indicate ?
Then I also tried the different usb commands in u-boot and found the following differences:
Cold boot:
Marvell>> usb info
1: Hub, USB Revision 2.0
- Marvell EHCI
- Class: Hub
- PacketSize: 64 Configurations: 1
- Vendor: 0x0000 Product 0x0000 Version 1.0
Configuration: 1
- Interfaces: 1 Self Powered 0mA
Interface: 0
- Alternate Settings 0, Endpoints: 1
- Class Hub
- Endpoint 1 In Interrupt MaxPacket 8 Interval 255ms
2: Mass Storage, USB Revision 2.0
- Trekstor DataStation maxi g.u 00E14E88
- Class: (from Interface) Mass Storage
- PacketSize: 64 Configurations: 1
- Vendor: 0x0c0b Product 0xb159 Version 1.3
Configuration: 1
- Interfaces: 1 Self Powered 2mA
- String: "Bulk Only Configuration"
Interface: 0
- Alternate Settings 0, Endpoints: 2
- Class Mass Storage, Transp. SCSI, Bulk only
- String: "Bulk Only Interface"
- Endpoint 1 In Bulk MaxPacket 512
- Endpoint 2 Out Bulk MaxPacket 512
Marvell>> usb part
print_part of 0
Partition Map for USB device 0 -- Partition Type: DOS
Partition Start Sector Num Sectors Type
1 63 20482812 83
2 20482875 956285190 5 Extd
5 20482938 2056257 82
6 22539258 954228807 83
Reboot:
Marvell>> usb info
1: Hub, USB Revision 2.0
- Marvell EHCI
- Class: Hub
- PacketSize: 64 Configurations: 1
- Vendor: 0x0000 Product 0x0000 Version 1.0
Configuration: 1
- Interfaces: 1 Self Powered 0mA
Interface: 0
- Alternate Settings 0, Endpoints: 1
- Class Hub
- Endpoint 1 In Interrupt MaxPacket 8 Interval 255ms
2: Mass Storage, USB Revision 2.0
- Trekstor DataStation maxi g.u 00E14E88
- Class: (from Interface) Mass Storage
- PacketSize: 64 Configurations: 1
- Vendor: 0x0c0b Product 0xb159 Version 1.3
Configuration: 1
- Interfaces: 1 Self Powered 2mA
- String: ""
Interface: 0
- Alternate Settings 0, Endpoints: 2
- Class Mass Storage, Transp. SCSI, Bulk only
- String: ""
- Endpoint 1 In Bulk MaxPacket 512
- Endpoint 2 Out Bulk MaxPacket 512
Marvell>> usb part
print_part of 0
## Unknown partition table
So "usb info" doesn't find the strings "Bulk Only Configuration", "Bulk Only Interface" after reboot. Also after reboot u-boot doesn't find the partitions anymore! This explains why the reboot fails. Power off the disk and the command reset will reboot without problems again.
I think that the communication between u-boot and the USB hdd fails partially after reboot (all other usb commands give no output differences between cold boot and reboot).
The same USB hdd model reboots without any problem at a NSLU2. If I understood this thread correctly I am not the only one who has this problem. Maybe I'm wrong but I don't think that the USB hdd itself has a problem. Rather u-boot runs different routines for cold boot and reboot, which could be seen on the additional "T" while scanning for storage devices. Or the shutdown of the plug leaves the USB hdd in a state which is incompatible with the plug.
Any idea how this could be fixed or bypassed ?