Linux – Mounting both /dev/sda and /dev/sda1 – how can this be

amazon ec2linux

I work on an Amazon EC2 instance that somebody else set up. We have an EBS volume mounted on /dev/sda, even though the root device is already on /dev/sda1, and we're also using /dev/sda2

user@server:~$ mount
/dev/sda1 on / type ext3 (rw)
... (snip)
/dev/sda2 on /mnt type ext3 (rw)
/dev/sda on /vol type xfs (rw,noatime)
...

This doesn't seem to fit with what I know about the way /dev/ works. How is this possible, and more importantly: will this cause trouble in the future?

I'm running ubuntu 9.04 jaunty.

MORE INFO

Amazon EBS volumes are connected to a running instance using the ec2-attach-volume command (that's the best article I could find). It is recommeneded to use an unused device name for connecting the volume, but I guess in this case they just used /dev/sda and it worked.

fdisk seems to be confused by the current configuration:

user@server:~$ sudo fdisk -l /dev/sda

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/sda doesn't contain a valid partition table
user@server:~$ sudo fdisk -l /dev/sda1

Disk /dev/sda1: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/sda1 doesn't contain a valid partition table
user@server:~$ sudo fdisk -l /dev/sda2

Disk /dev/sda2: 365.0 GB, 365041287168 bytes
255 heads, 63 sectors/track, 44380 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/sda2 doesn't contain a valid partition table
user@server:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.9G  943M  8.5G  10% /
tmpfs                 874M     0  874M   0% /lib/init/rw
varrun                874M   48K  874M   1% /var/run
varlock               874M     0  874M   0% /var/lock
udev                  874M   80K  874M   1% /dev
tmpfs                 874M     0  874M   0% /dev/shm
/dev/sda2             335G   45G  273G  15% /mnt
/dev/sda               10G  7.0G  3.1G  70% /vol

EVEN MORE INFO

Here's the output of the diagnostic commands you guys asked for:

user@server:~$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 2010-01-27 21:48 /dev/sda
user@server:~$ ls -l /dev/sda1
brw-rw---- 1 root disk 8, 1 2010-01-22 23:23 /dev/sda1
user@server:~$ ls -l /dev/sda2
brw-rw---- 1 root disk 8, 2 2010-01-22 23:22 /dev/sda2
user@server:~$
user@server:~$
user@server:~$ cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,data=ordered 0 0
/dev /dev tmpfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid 0 0
varrun /var/run tmpfs rw,nosuid 0 0
varlock /var/lock tmpfs rw,nosuid,nodev,noexec 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
devpts /dev/pts devpts rw,nosuid,noexec 0 0
/dev/sda2 /mnt ext3 rw,data=ordered 0 0
/dev/sda /vol xfs rw,noatime 0 0
/dev/sda /home/user xfs rw,noatime 0 0
/dev/sda /etc/mysql xfs rw,noatime 0 0
/dev/sda /var/lib/mysql xfs rw,noatime 0 0
/dev/sda /var/log/mysql xfs rw,noatime 0 0
user@server:~$
user@server:~$
user@server:~$ find /sys/block
/sys/block
/sys/block/sda
/sys/block/sda/queue
/sys/block/sda/queue/iosched
/sys/block/sda/queue/scheduler
/sys/block/sda/queue/max_sectors_kb
/sys/block/sda/queue/max_hw_sectors_kb
/sys/block/sda/queue/read_ahead_kb
/sys/block/sda/queue/nr_requests
/sys/block/sda/slaves
/sys/block/sda/holders
/sys/block/sda/subsystem
/sys/block/sda/device
/sys/block/sda/stat
/sys/block/sda/size
/sys/block/sda/removable
/sys/block/sda/range
/sys/block/sda/dev
/sys/block/sda/uevent
/sys/block/sda3
/sys/block/sda3/queue
/sys/block/sda3/queue/iosched
/sys/block/sda3/queue/scheduler
/sys/block/sda3/queue/max_sectors_kb
/sys/block/sda3/queue/max_hw_sectors_kb
/sys/block/sda3/queue/read_ahead_kb
/sys/block/sda3/queue/nr_requests
/sys/block/sda3/slaves
/sys/block/sda3/holders
/sys/block/sda3/subsystem
/sys/block/sda3/device
/sys/block/sda3/stat
/sys/block/sda3/size
/sys/block/sda3/removable
/sys/block/sda3/range
/sys/block/sda3/dev
/sys/block/sda3/uevent
/sys/block/sda2
/sys/block/sda2/queue
/sys/block/sda2/queue/iosched
/sys/block/sda2/queue/scheduler
/sys/block/sda2/queue/max_sectors_kb
/sys/block/sda2/queue/max_hw_sectors_kb
/sys/block/sda2/queue/read_ahead_kb
/sys/block/sda2/queue/nr_requests
/sys/block/sda2/slaves
/sys/block/sda2/holders
/sys/block/sda2/subsystem
/sys/block/sda2/device
/sys/block/sda2/stat
/sys/block/sda2/size
/sys/block/sda2/removable
/sys/block/sda2/range
/sys/block/sda2/dev
/sys/block/sda2/uevent
/sys/block/sda1
/sys/block/sda1/queue
/sys/block/sda1/queue/iosched
/sys/block/sda1/queue/scheduler
/sys/block/sda1/queue/max_sectors_kb
/sys/block/sda1/queue/max_hw_sectors_kb
/sys/block/sda1/queue/read_ahead_kb
/sys/block/sda1/queue/nr_requests
/sys/block/sda1/slaves
/sys/block/sda1/holders
/sys/block/sda1/subsystem
/sys/block/sda1/device
/sys/block/sda1/stat
/sys/block/sda1/size
/sys/block/sda1/removable
/sys/block/sda1/range
/sys/block/sda1/dev
/sys/block/sda1/uevent
/sys/block/ram15
/sys/block/ram15/slaves
/sys/block/ram15/holders
/sys/block/ram15/subsystem
/sys/block/ram15/stat
/sys/block/ram15/size
/sys/block/ram15/removable
/sys/block/ram15/range
/sys/block/ram15/dev
/sys/block/ram15/uevent
/sys/block/ram14
/sys/block/ram14/slaves
/sys/block/ram14/holders
/sys/block/ram14/subsystem
/sys/block/ram14/stat
/sys/block/ram14/size
/sys/block/ram14/removable
/sys/block/ram14/range
/sys/block/ram14/dev
/sys/block/ram14/uevent
/sys/block/ram13
/sys/block/ram13/slaves
/sys/block/ram13/holders
/sys/block/ram13/subsystem
/sys/block/ram13/stat
/sys/block/ram13/size
/sys/block/ram13/removable
/sys/block/ram13/range
/sys/block/ram13/dev
/sys/block/ram13/uevent
/sys/block/ram12
/sys/block/ram12/slaves
/sys/block/ram12/holders
/sys/block/ram12/subsystem
/sys/block/ram12/stat
/sys/block/ram12/size
/sys/block/ram12/removable
/sys/block/ram12/range
/sys/block/ram12/dev
/sys/block/ram12/uevent
/sys/block/ram11
/sys/block/ram11/slaves
/sys/block/ram11/holders
/sys/block/ram11/subsystem
/sys/block/ram11/stat
/sys/block/ram11/size
/sys/block/ram11/removable
/sys/block/ram11/range
/sys/block/ram11/dev
/sys/block/ram11/uevent
/sys/block/ram10
/sys/block/ram10/slaves
/sys/block/ram10/holders
/sys/block/ram10/subsystem
/sys/block/ram10/stat
/sys/block/ram10/size
/sys/block/ram10/removable
/sys/block/ram10/range
/sys/block/ram10/dev
/sys/block/ram10/uevent
/sys/block/ram9
/sys/block/ram9/slaves
/sys/block/ram9/holders
/sys/block/ram9/subsystem
/sys/block/ram9/stat
/sys/block/ram9/size
/sys/block/ram9/removable
/sys/block/ram9/range
/sys/block/ram9/dev
/sys/block/ram9/uevent
/sys/block/ram8
/sys/block/ram8/slaves
/sys/block/ram8/holders
/sys/block/ram8/subsystem
/sys/block/ram8/stat
/sys/block/ram8/size
/sys/block/ram8/removable
/sys/block/ram8/range
/sys/block/ram8/dev
/sys/block/ram8/uevent
/sys/block/ram7
/sys/block/ram7/slaves
/sys/block/ram7/holders
/sys/block/ram7/subsystem
/sys/block/ram7/stat
/sys/block/ram7/size
/sys/block/ram7/removable
/sys/block/ram7/range
/sys/block/ram7/dev
/sys/block/ram7/uevent
/sys/block/ram6
/sys/block/ram6/slaves
/sys/block/ram6/holders
/sys/block/ram6/subsystem
/sys/block/ram6/stat
/sys/block/ram6/size
/sys/block/ram6/removable
/sys/block/ram6/range
/sys/block/ram6/dev
/sys/block/ram6/uevent
/sys/block/ram5
/sys/block/ram5/slaves
/sys/block/ram5/holders
/sys/block/ram5/subsystem
/sys/block/ram5/stat
/sys/block/ram5/size
/sys/block/ram5/removable
/sys/block/ram5/range
/sys/block/ram5/dev
/sys/block/ram5/uevent
/sys/block/ram4
/sys/block/ram4/slaves
/sys/block/ram4/holders
/sys/block/ram4/subsystem
/sys/block/ram4/stat
/sys/block/ram4/size
/sys/block/ram4/removable
/sys/block/ram4/range
/sys/block/ram4/dev
/sys/block/ram4/uevent
/sys/block/ram3
/sys/block/ram3/slaves
/sys/block/ram3/holders
/sys/block/ram3/subsystem
/sys/block/ram3/stat
/sys/block/ram3/size
/sys/block/ram3/removable
/sys/block/ram3/range
/sys/block/ram3/dev
/sys/block/ram3/uevent
/sys/block/ram2
/sys/block/ram2/slaves
/sys/block/ram2/holders
/sys/block/ram2/subsystem
/sys/block/ram2/stat
/sys/block/ram2/size
/sys/block/ram2/removable
/sys/block/ram2/range
/sys/block/ram2/dev
/sys/block/ram2/uevent
/sys/block/ram1
/sys/block/ram1/slaves
/sys/block/ram1/holders
/sys/block/ram1/subsystem
/sys/block/ram1/stat
/sys/block/ram1/size
/sys/block/ram1/removable
/sys/block/ram1/range
/sys/block/ram1/dev
/sys/block/ram1/uevent
/sys/block/ram0
/sys/block/ram0/slaves
/sys/block/ram0/holders
/sys/block/ram0/subsystem
/sys/block/ram0/stat
/sys/block/ram0/size
/sys/block/ram0/removable
/sys/block/ram0/range
/sys/block/ram0/dev
/sys/block/ram0/uevent
user@server:~$
user@server:~$
user@server:~$ dmesg
Linux version 2.6.21.7-2.fc8xen-ec2-v1.0 (root@domU-XX-XX-XX-XX-XX-XX) (gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)) #2 SMP Tue Sep 1 10:04:29 EDT 2009
BIOS-provided physical RAM map:
sanitize start
sanitize bail 0
copy_e820_map() start: 0000000000000000 size: 000000006d400000 end: 000000006d400000 type: 1
 Xen: 0000000000000000 - 000000006d400000 (usable)
1020MB HIGHMEM available.
727MB LOWMEM available.
NX (Execute Disable) protection: active
Entering add_active_range(0, 0, 447488) 0 entries of 256 used
Zone PFN ranges:
  DMA             0 ->   186366
  Normal     186366 ->   186366
  HighMem    186366 ->   447488
early_node_map[1] active PFN ranges
    0:        0 ->   447488
On node 0 totalpages: 447488
  DMA zone: 1455 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 184911 pages, LIFO batch:31
  Normal zone: 0 pages used for memmap
  HighMem zone: 2040 pages used for memmap
  HighMem zone: 259082 pages, LIFO batch:31
ACPI in unprivileged domain disabled
Detected 2327.541 MHz processor.
Built 1 zonelists.  Total pages: 443993
Kernel command line:  root=/dev/sda1 ro 4
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
CPU 0 irqstacks, hard=c136c000 soft=c134c000
PID hash table entries: 4096 (order: 12, 16384 bytes)
Xen reported: 2327.496 MHz processor.
Console: colour dummy device 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Software IO TLB disabled
vmalloc area: ee000000-f4ffe000, maxmem 2d7fe000
Memory: 1751808k/1789952k available (2071k kernel code, 28924k reserved, 1080k data, 188k init, 1044488k highmem)
virtual kernel memory layout:
    fixmap  : 0xf5315000 - 0xf57fe000   (5028 kB)
    pkmap   : 0xf5000000 - 0xf5200000   (2048 kB)
    vmalloc : 0xee000000 - 0xf4ffe000   ( 111 MB)
    lowmem  : 0xc0000000 - 0xed7fe000   ( 727 MB)
      .init : 0xc1319000 - 0xc1348000   ( 188 kB)
      .data : 0xc1205e96 - 0xc1313fd4   (1080 kB)
      .text : 0xc1000000 - 0xc1205e96   (2071 kB)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 5820.83 BogoMIPS (lpj=11641676)
Security Framework v1.0.0 initialized
SELinux:  Initializing.
SELinux:  Starting in permissive mode
selinux_register_security:  Registering secondary module capability
Capability LSM initialized as secondary
Mount-cache hash table entries: 512
CPU: After generic identify, caps: bfebc3f1 20100000 00000000 00000000 040ce3bd 00000000 00000001
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 6144K
CPU: After all inits, caps: bfebc3f1 20100000 00000000 00003940 040ce3bd 00000000 00000001
Checking 'hlt' instruction... OK.
SMP alternatives: switching to UP code
CPU 1 irqstacks, hard=c136d000 soft=c134d000
Brought up 1 CPUs
sizeof(vma)=88 bytes
sizeof(page)=32 bytes
sizeof(inode)=336 bytes
sizeof(dentry)=132 bytes
sizeof(ext3inode)=488 bytes
sizeof(buffer_head)=56 bytes
sizeof(skbuff)=176 bytes
sizeof(task_struct)=1376 bytes
NET: Registered protocol family 16
SMP alternatives: switching to SMP code
Initializing CPU#1
migration_cost=23211
Brought up 2 CPUs
PCI: Fatal: No config space access function found
PCI: setting up Xen PCI frontend stub
Setting up standard PCI resources
ACPI: Interpreter disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI: disabled
xen_mem: Initialising balloon driver.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: System does not support PCI
PCI: System does not support PCI
NetLabel: Initializing
NetLabel:  domain hash size = 128
NetLabel:  protocols = UNLABELED CIPSOv4
NetLabel:  unlabeled traffic allowed by default
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1572864 bytes)
TCP bind hash table entries: 65536 (order: 7, 524288 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
checking if image is initramfs... it is
Freeing initrd memory: 6669k freed
audit: initializing netlink socket (disabled)
audit(1264202578.633:1): initialized
highmem bounce pool size: 64 pages
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
SELinux:  Registering netfilter hooks
ksign: Installing public key data
Loading keyring
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
rtc: IRQ 8 is not free.
Non-volatile memory driver v1.2
Linux agpgart interface v0.102 (c) Dave Jones
RAMDISK driver initialized: 16 RAM disks of 16384K size 4096 blocksize
input: Macintosh mouse button emulation as /class/input/input0
Xen virtual console successfully installed as xvc0
Event-channel device installed.
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
PNP: No PS/2 controller found. Probing ports directly.
i8042.c: No controller found.
mice: PS/2 mouse device common for all mice
TCP bic registered
Initializing XFRM netlink socket
NET: Registered protocol family 1
NET: Registered protocol family 17
Using IPI No-Shortcut mode
XENBUS: Device with no driver: device/vif/0
XENBUS: Device with no driver: device/vbd/2049
XENBUS: Device with no driver: device/vbd/2050
XENBUS: Device with no driver: device/vbd/2051
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Freeing unused kernel memory: 188k freed
Write protecting the kernel read-only data: 795k
mbcache: no version for "struct_module" found: kernel tainted.
xen-vbd: registered block device major 8
netfront: Initialising virtual ethernet driver.
netfront: device eth0 has flipping receive path.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
SGI XFS with ACLs, security attributes, large block numbers, no debug enabled
SGI XFS Quota Management subsystem
Adding 917496k swap on /dev/sda3.  Priority:-1 extents:1 across:917496k
EXT3 FS on sda1, internal journal
kjournald starting.  Commit interval 5 seconds
EXT3-fs warning: checktime reached, running e2fsck is recommended
EXT3 FS on sda2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
Mobile IPv6
eth0: no IPv6 routers present
 sda: unknown partition table
Filesystem "sda": Disabling barriers, not supported by the underlying device
XFS mounting filesystem sda
Ending clean XFS mount for filesystem: sda
 sdo: unknown partition table
user@server:~$
user@server:~$
user@server:~$
user@server:~$
user@server:~$ hal-find-by-property --key block.device --string /dev/sda |xargs -i lshal -u "{}"
udi = '/org/freedesktop/Hal/devices/volume_uuid_ef9f98e8_3b09_41a2_9962_73fbe0a675aa'
  block.device = '/dev/sda'  (string)
  block.is_volume = true  (bool)
  block.major = 8  (0x8)  (int)
  block.minor = 0  (0x0)  (int)
  block.storage_device = '/org/freedesktop/Hal/devices/computer_storage_unknown_disk_0'  (string)
  info.capabilities = {'volume', 'block'} (string list)
  info.category = 'volume'  (string)
  info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list)
  info.parent = '/org/freedesktop/Hal/devices/computer_storage_unknown_disk_0'  (string)
  info.product = 'Volume (xfs)'  (string)
  info.udi = '/org/freedesktop/Hal/devices/volume_uuid_ef9f98e8_3b09_41a2_9962_73fbe0a675aa'  (string)
  linux.hotplug_type = 3  (0x3)  (int)
  linux.sysfs_path = '/sys/block/sda/fakevolume'  (string)
  org.freedesktop.Hal.Device.Volume.method_argnames = {'mount_point fstype extra_options', 'extra_options', 'extra_options'} (string list)
  org.freedesktop.Hal.Device.Volume.method_execpaths = {'hal-storage-mount', 'hal-storage-unmount', 'hal-storage-eject'} (string list)
  org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount', 'Eject'} (string list)
  org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as', 'as'} (string list)
  volume.block_size = 512  (0x200)  (int)
  volume.fstype = 'xfs'  (string)
  volume.fsusage = 'filesystem'  (string)
  volume.fsversion = ''  (string)
  volume.ignore = false  (bool)
  volume.is_disc = false  (bool)
  volume.is_mounted = true  (bool)
  volume.is_mounted_read_only = false  (bool)
  volume.is_partition = false  (bool)
  volume.label = ''  (string)
  volume.linux.is_device_mapper = false  (bool)
  volume.mount.valid_options = {'ro', 'sync', 'dirsync', 'noatime', 'nodiratime', 'noexec', 'quiet', 'remount', 'exec'} (string list)
  volume.mount_point = '/vol'  (string)
  volume.num_blocks = 20971520  (0x1400000)  (uint64)
  volume.size = 10737418240  (0x280000000)  (uint64)
  volume.unmount.valid_options = {'lazy'} (string list)
  volume.uuid = 'ef9f98e8-3b09-41a2-9962-73fbe0a675aa'  (string)

udi = '/org/freedesktop/Hal/devices/computer_storage_unknown_disk_0'
  block.device = '/dev/sda'  (string)
  block.is_volume = false  (bool)
  block.major = 8  (0x8)  (int)
  block.minor = 0  (0x0)  (int)
  block.storage_device = '/org/freedesktop/Hal/devices/computer_storage_unknown_disk_0'  (string)
  info.capabilities = {'storage', 'block'} (string list)
  info.category = 'storage'  (string)
  info.parent = '/org/freedesktop/Hal/devices/xen_vbd_2048'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer_storage_unknown_disk_0'  (string)
  linux.hotplug_type = 3  (0x3)  (int)
  linux.sysfs_path = '/sys/block/sda'  (string)
  storage.automount_enabled_hint = false  (bool)
  storage.bus = 'unknown'  (string)
  storage.drive_type = 'disk'  (string)
  storage.hotpluggable = false  (bool)
  storage.media_check_enabled = false  (bool)
  storage.model = ''  (string)
  storage.no_partitions_hint = false  (bool)
  storage.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  storage.partitioning_scheme = 'none'  (string)
  storage.removable = false  (bool)
  storage.removable.media_available = true  (bool)
  storage.removable.media_size = 10737418240  (0x280000000)  (uint64)
  storage.requires_eject = false  (bool)
  storage.size = 10737418240  (0x280000000)  (uint64)
  storage.vendor = ''  (string)

user@server:~$ hal-find-by-property --key block.device --string /dev/sda1 |xargs -i lshal -u "{}"
udi = '/org/freedesktop/Hal/devices/volume_uuid_6e90162e_9c7a_4609_9e10_a2686db2aff0'
  block.device = '/dev/sda1'  (string)
  block.is_volume = true  (bool)
  block.major = 8  (0x8)  (int)
  block.minor = 1  (0x1)  (int)
  block.storage_device = '/org/freedesktop/Hal/devices/computer_storage_unknown_disk_1'  (string)
  info.capabilities = {'volume', 'block'} (string list)
  info.category = 'volume'  (string)
  info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list)
  info.parent = '/org/freedesktop/Hal/devices/computer_storage_unknown_disk_1'  (string)
  info.product = 'Volume (ext3)'  (string)
  info.udi = '/org/freedesktop/Hal/devices/volume_uuid_6e90162e_9c7a_4609_9e10_a2686db2aff0'  (string)
  linux.hotplug_type = 3  (0x3)  (int)
  linux.sysfs_path = '/sys/block/sda1/fakevolume'  (string)
  org.freedesktop.Hal.Device.Volume.method_argnames = {'mount_point fstype extra_options', 'extra_options', 'extra_options'} (string list)
  org.freedesktop.Hal.Device.Volume.method_execpaths = {'hal-storage-mount', 'hal-storage-unmount', 'hal-storage-eject'} (string list)
  org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount', 'Eject'} (string list)
  org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as', 'as'} (string list)
  volume.block_size = 512  (0x200)  (int)
  volume.fstype = 'ext3'  (string)
  volume.fsusage = 'filesystem'  (string)
  volume.fsversion = '1.0'  (string)
  volume.ignore = false  (bool)
  volume.is_disc = false  (bool)
  volume.is_mounted = true  (bool)
  volume.is_mounted_read_only = false  (bool)
  volume.is_partition = false  (bool)
  volume.label = ''  (string)
  volume.linux.is_device_mapper = false  (bool)
  volume.mount.valid_options = {'ro', 'sync', 'dirsync', 'noatime', 'nodiratime', 'noexec', 'quiet', 'remount', 'exec', 'acl', 'user_xattr', 'data='} (string list)
  volume.mount_point = '/'  (string)
  volume.num_blocks = 20971520  (0x1400000)  (uint64)
  volume.size = 10737418240  (0x280000000)  (uint64)
  volume.unmount.valid_options = {'lazy'} (string list)
  volume.uuid = '6e90162e-9c7a-4609-9e10-a2686db2aff0'  (string)

udi = '/org/freedesktop/Hal/devices/computer_storage_unknown_disk_1'
  block.device = '/dev/sda1'  (string)
  block.is_volume = false  (bool)
  block.major = 8  (0x8)  (int)
  block.minor = 1  (0x1)  (int)
  block.storage_device = '/org/freedesktop/Hal/devices/computer_storage_unknown_disk_1'  (string)
  info.capabilities = {'storage', 'block'} (string list)
  info.category = 'storage'  (string)
  info.parent = '/org/freedesktop/Hal/devices/xen_vbd_2049'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer_storage_unknown_disk_1'  (string)
  linux.hotplug_type = 3  (0x3)  (int)
  linux.sysfs_path = '/sys/block/sda1'  (string)
  storage.automount_enabled_hint = false  (bool)
  storage.bus = 'unknown'  (string)
  storage.drive_type = 'disk'  (string)
  storage.hotpluggable = false  (bool)
  storage.media_check_enabled = false  (bool)
  storage.model = ''  (string)
  storage.no_partitions_hint = false  (bool)
  storage.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  storage.partitioning_scheme = 'none'  (string)
  storage.removable = false  (bool)
  storage.removable.media_available = true  (bool)
  storage.removable.media_size = 10737418240  (0x280000000)  (uint64)
  storage.requires_eject = false  (bool)
  storage.size = 10737418240  (0x280000000)  (uint64)
  storage.vendor = ''  (string)

I really appreciate all the help, but I have this feeling that the more info I add, the less likely this question will ever be useful to someone else.

Best Answer

It looks like the EBS volume was added later as sda. So, sda{1,2} points to the virtual disk that the instance was booted from and sda points to the EBS volume. This might cause problems with programs that assume sda{1,2} to be partitions of sda.