Create the parition table
1. Plug your SD Card to your computer.
2. Identify your /dev/ node
The output lists your disks :sudo fdisk -l
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2473 19864341 7 HPFS/NTFS
/dev/sda2 2474 19456 136415745 f W95 Ext'd (LBA)
/dev/sda5 3279 6374 24868588+ 7 HPFS/NTFS
/dev/sda6 6375 19456 105081133+ 7 HPFS/NTFS
/dev/sda7 2474 3237 6133760 83 Linux
/dev/sda8 3237 3278 330752 82 Linux swap / Solaris
Partition table entries are not in disk order
Disk /dev/sdb: 3974 MB, 3974103040 bytes
4 heads, 16 sectors/track, 121280 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 1 611 19544 83 Linux
/dev/sdb2 612 121280 3861408 83 Linux
Note : sda identifies your hard drives (or partitions) while sdb (or c, d, ...) is used for removable disks
My SD Card is referred as /dev/sdb and it currently has 2 partitions.
3. Clear the partition table
sudo fdisk /dev/sdb/At the fdisk command line prompt, enter 'o'. It will create a new virtual DOS partition table :
Building a new DOS disklabel with disk identifier 0xd39a6636.Now enter 'p', it will display the SD Card properties. Note the card size somewhere, we will need it later :
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Disk /dev/sdb: 3974 MB, 3974103040 bytes
...
4. Set SD Card geometry
Enter 'x' to go into the expert mode.The setup configuration is : 255 heads and 63 sectors (512 bytes each). We need to calculate the number of cylinders :
cylinders_nb = card_size_bytes / heads_nb / sectors_nb / sector_size
Here :
cylinders_nb = 3974103040 / 63 / 255 / 512 = 483, 15
The result must be rounded down, which means that cylinders_nb = 483.
Enter 'h' and set the heads number :
Enter 's' and set the sectors number:Expert command (m for help): h
Number of heads (1-256, default 4): 255
Enter 'c' and set the cylinders number :Expert command (m for help): s
Number of sectors (1-63, default 16): 63
Warning: setting sector offset for DOS compatiblity
Expert command (m for help): c
Number of cylinders (1-1048576, default 121280): 483
5 . Create a FAT32 partition (boot partition)
Enter 'r' to go back to normal mode.Follow these steps :
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-483, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-483, default 483): +50
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): c
Changed system type of partition 1 to c (W95 FAT32 (LBA))
Command (m for help): a
Partition number (1-4): 1
6. Create a Linux partition (root filesystem)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (52-483, default 52): (press Enter)
Using default value 52
Last cylinder, +cylinders or +size{K,M,G} (52-483, default 483): (press Enter)
Using default value 483
7. Apply the partition table to the card
Enter 'p' and verify that you have these 2 partitions :Device Boot Start End Blocks Id SystemEnter 'w' to write it on the card.
/dev/sdb1 * 1 51 409626 c W95 FAT32 (LBA)
/dev/sdb2 52 483 3470040 83 Linux
Format the SD Card
1. Format the DOS partition
sudo mkfs.msdos -F 32 /dev/sdb1 -n DOS
2. Format the Linux partition to ext3
And that's it ! To avoid doing this manually everytime, the Pi-community have written some scripts that execute these commands for you. One of them can be found here and all you have to do is :sudo mkfs.ext3 /dev/sdb2
# Make it executablechmod +x mkcard.txt# Run it (use your own disk node ! )./mkcard.txt /dev/sdb
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.