SDHC - проблемы с суперблоком при разбиении

2219
DevilCode

Я пробовал с четырьмя различными картами SDHC . Первый набор из двух был 8 ГБ, а второй набор был 32 ГБ.

Используя GParted, я попытался разделить следующим образом:

Я попытался сделать один загрузочный раздел размером 65 МБ FAT32, а второй - заполнить оставшееся пространство типа ext4 .

Неважно, если я делаю это через GParted или через скрипт BeagleBoardUbuntu ( sudo ./setup_sdcard.sh --mmc /dev/sdX --uboot beagle), у меня есть та же проблема.

Первый загрузочный раздел будет в порядке, но любой другой раздел не будет. Он не будет автоматически смонтирован, как первый раздел, и возникнет следующая ошибка:

swamprat@swamprat-O-E-M:~/ubuntu-11.04-r1-minimal-armel$ sudo ./setup_sdcard.sh --mmc /dev/sdd --uboot beagle [sudo] password for swamprat:  I see... fdisk -l: Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk /dev/sdb: 500.1 GB, 500107862016 bytes Disk /dev/sdd: 33.6 GB, 33554432000 bytes  mount: /dev/sda5 on / type ext4 (rw,errors=remount-ro,commit=0) /dev/sda6 on /home type ext4 (rw,commit=0) /dev/sda7 on /virt type ext4 (rw,commit=0)  Are you 100% sure, on selecting [/dev/sdd] (y/n)? y   1 / 9: Downloading X-loader and Uboot 2011-06-21 16:30:48 URL:http://rcn-ee.net/deb/tools/latest/bootloader [1936/1936] -> "/tmp/tmp.ngjOoVvqe3/dl/bootloader" [1] 2011-06-21 16:30:49 URL:http://rcn-ee.net/deb/tools/MLO/MLO-beagleboard-1.5.0+r22+gitrb6bbfe7848de547b64edf1c363c86cec4921b517-r22 [23716/23716] -> "/tmp/tmp.ngjOoVvqe3/dl/MLO-beagleboard-1.5.0+r22+gitrb6bbfe7848de547b64edf1c363c86cec4921b517-r22" [1] 2011-06-21 16:30:52 URL:http://rcn-ee.net/deb/tools/UBOOT/u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75.bin [284788/284788] -> "/tmp/tmp.ngjOoVvqe3/dl/u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75.bin" [1]  2 / 9: Unmountting Partitions  3 / 9: Creating Boot Partition  WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').  Command (m for help): Command action e extended p primary partition (1-4) Partition number (1-4): First cylinder (1-32000, default 1): Last cylinder, +cylinders or +size (1-32000, default 32000): Command (m for help): Selected partition 1 Hex code (type L to list codes): Changed system type of partition 1 to e (W95 FAT16 (LBA))  Command (m for help): Disk /dev/sdd: 33.6 GB, 33554432000 bytes 64 heads, 32 sectors/track, 32000 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00044167  Device Boot Start End Blocks Id System /dev/sdd1 1 65 66544 e W95 FAT16 (LBA)  Command (m for help): The partition table has been altered!  Calling ioctl() to re-read partition table.  WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information. Syncing disks.  4 / 9: Creating ext4 Partition  5 / 9: Formatting Boot Partition mkfs.vfat 3.0.9 (31 Jan 2010)  6 / 9: Formatting ext4 Partition mke2fs 1.41.14 (22-Dec-2010) Filesystem label=rootfs OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 2044000 inodes, 8175360 blocks 408768 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 250 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624  Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done  This filesystem will be automatically checked every 27 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.  7 / 9: Populating Boot Partition `/tmp/tmp.ngjOoVvqe3/dl/MLO-beagleboard-1.5.0+r22+gitrb6bbfe7848de547b64edf1c363c86cec4921b517-r22' -> `/tmp/tmp.ngjOoVvqe3/disk/MLO' `/tmp/tmp.ngjOoVvqe3/dl/u-boot-beagleboard-2011.02+r75+gitrc7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8-r75.bin' -> `/tmp/tmp.ngjOoVvqe3/disk/u-boot.bin' uImage Image Name: 2.6.39-x1 Created: Tue Jun 21 16:31:46 2011 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3254748 Bytes = 3178.46 kB = 3.10 MB Load Address: 80008000 Entry Point: 80008000 uInitrd Image Name: initramfs Created: Tue Jun 21 16:31:48 2011 Image Type: ARM Linux RAMDisk Image (uncompressed) Data Size: 3690105 Bytes = 3603.62 kB = 3.52 MB Load Address: 00000000 Entry Point: 00000000 Image Name: Boot Script Created: Tue Jun 21 16:31:49 2011 Image Type: ARM Linux Script (uncompressed) Data Size: 377 Bytes = 0.37 kB = 0.00 MB Load Address: 00000000 Entry Point: 00000000 Contents: Image 0: 369 Bytes = 0.36 kB = 0.00 MB Image Name: Reset Nand Created: Tue Jun 21 16:31:50 2011 Image Type: ARM Linux Script (uncompressed) Data Size: 602 Bytes = 0.59 kB = 0.00 MB Load Address: 00000000 Entry Point: 00000000 Contents: Image 0: 594 Bytes = 0.58 kB = 0.00 MB `/tmp/readme.txt' -> `/tmp/tmp.ngjOoVvqe3/disk/tools/readme.txt' `/tmp/update_boot_files.sh' -> `/tmp/tmp.ngjOoVvqe3/disk/tools/update_boot_files.sh' `/tmp/fix_zippy2.sh' -> `/tmp/tmp.ngjOoVvqe3/disk/tools/fix_zippy2.sh' `/tmp/latest_kernel.sh' -> `/tmp/tmp.ngjOoVvqe3/disk/tools/latest_kernel.sh' `/tmp/minimal_xfce.sh' -> `/tmp/tmp.ngjOoVvqe3/disk/tools/minimal_xfce.sh' `/tmp/get_chrome.sh' -> `/tmp/tmp.ngjOoVvqe3/disk/tools/get_chrome.sh'  Finished populating Boot Partition  8 / 9: Populating rootfs Partition Be patient, this may take a few minutes mount: wrong fs type, bad option, bad superblock on /dev/sdd2, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so   Unable to mount /dev/sdd2 at /tmp/tmp.ngjOoVvqe3/disk to complete populating rootfs Partition Please retry running the script, sometimes rebooting your system helps. 
2

1 ответ на вопрос

1
CodePoet

Я предполагаю, что раздел для / dev / sdd2 создан и имеет правильный тип, потому что вы пробовали этот шаг вручную, и он выглядел хорошо, однако вы можете попробовать запустить скрипт ./setup_sdcard.sh с помощью "--debug - fdisk-debug ", чтобы получить больше информации о разбиении, чтобы быть уверенным. В любом случае, поскольку у нас уже есть правильный раздел, например, root или sudo -i, сделайте следующее:

mkfs.ext4 /dev/sdd2 -L rootfs mkdir /tmp/temp_mount mount -t ext4 /dev/sdd2 /tmp/temp_mount 

Этот последний шаг должен потерпеть неудачу, по крайней мере, мы ожидаем, потому что это в основном то, что делает скрипт. Если это удастся, значит, у вас плохой ./setup_sdcard.sh, и вам, вероятно, следует его повторно загрузить. Сейчас самое время проверить dmesg (введите «dmesg» в терминале) на наличие недавних ошибок, связанных с жесткими дисками или разделами. Если вы видите какие-либо ошибки в журналах, попробуйте это:

tune2fs -j /dev/sdd2 mount -t ext4 /dev/sdd2 /tmp/temp_mount 

и попробуйте запустить fsck на нем следующим образом:

fsck.ext4 /dev/sdd2 mount -t ext4 /dev/sdd2 /tmp/temp_mount 

В качестве проверки работоспособности также попробуйте:

mkfs.ext4 /dev/sdd2 mount /dev/sdd2 /tmp/temp_mount 

Наконец, другой вариант может заключаться в том, чтобы заполнить (одну из) карточек нулями (dd if = / dev / zero of = / dev / sdd) и затем повторить сценарий. Но убедитесь, что на карте нет ценных данных, потому что это сотрет все. Затем попробуйте снова.

Причина этого сбоя, вероятно, не в аппаратном обеспечении карты, поскольку вы пробовали разные карты (хотя вы можете попробовать другое устройство чтения карт). Я подозреваю, что это либо аппаратная ошибка со считывателем карт, ошибка ядра или проблема с e2fsprogs. e2fsprogs - последняя стабильная версия, так что, вероятно, все в порядке. Попробуйте отформатировать на другом компьютере с другим читателем.

Надеюсь, одно из приведенных выше решений поможет вам.

Я отредактировал вопрос и заполнил, что могу. Обнаружил, что это его переживания: http://vincemoser.wordpress.com/2007/06/29/howto-partition-sd-card/ DevilCode 13 лет назад 0
dd if=/dev/zero of=/dev/sdd Zeroing the card made no difference either =(( DevilCode 13 лет назад 0
I got another 8Gig card to partition OK so I’m beginning to think its dependant on the make of cards. The 32 Gig cards work fine with only one partition but not if any extra are added. I think its because the the 32 Gig cards are Ebay ones made with dubious manufacturers. DevilCode 13 лет назад 0
Вы пробовали другой кард-ридер? CodePoet 13 лет назад 0
Да не отличается. Я думаю, что это может быть потому, что они * возможно * дешевые копии карт из Китая или что-то в этом роде, поскольку я получил их от Ebay и заставил не узнавать Я куплю 32 Гига от признанного имени и посмотрю .. если кто-то не может что-то еще ... DevilCode 13 лет назад 0