summaryrefslogtreecommitdiffstats
path: root/disk-utils/sfdisk.examples
diff options
context:
space:
mode:
Diffstat (limited to 'disk-utils/sfdisk.examples')
-rw-r--r--disk-utils/sfdisk.examples264
1 files changed, 264 insertions, 0 deletions
diff --git a/disk-utils/sfdisk.examples b/disk-utils/sfdisk.examples
new file mode 100644
index 000000000..13e671d48
--- /dev/null
+++ b/disk-utils/sfdisk.examples
@@ -0,0 +1,264 @@
+Examples of the use of sfdisk 3.0 (to partition a disk)
+Input lines have fields <start>,<size>,<type>... - see sfdisk.8.
+Usually no <start> is given, and input lines start with a comma.
+
+Before doing anything with a disk, make sure it is not in use;
+unmount all its file systems, and say swapoff to its swap partitions.
+(The final BLKRRPART ioctl will fail if anything else still uses
+the disk, and you will have to reboot. It is easier to first make
+sure that nothing uses the disk, e.g., by testing:
+ % umount /dev/sdb1
+ % sfdisk -R /dev/sdb
+ BLKRRPART: Device or resource busy
+ * Device busy for revalidation (usage=2)
+ % swapoff /dev/sdb3
+ % sfdisk -R /dev/sdb
+ * sdb: sdb1 < sdb5 sdb6 > sdb3
+ %
+Note that the starred messages are kernel messages, that may be
+logged somewhere, or written to some other console.
+In sfdisk 3.01 sfdisk automatically does this check, unless told not to.)
+
+1. One big partition:
+ sfdisk /dev/hda << EOF
+ ;
+ EOF
+
+(If there was garbage on the disk before, you may get error messages
+like: `ERROR: sector 0 does not have an msdos signature'
+and `/dev/hda: unrecognized partition'. This does not matter
+if you write an entirely fresh partition table anyway.)
+
+The output will be:
+-----------------------------------------------------------------------
+Old situation:
+...
+New situation:
+Units = cylinders of 208896 bytes, blocks of 1024 bytes, counting from 0
+
+ Device Boot Start End #cyls #blocks Id System
+/dev/hda1 0+ 1023 1024- 208895+ 83 Linux native
+Successfully wrote the new partition table
+ hda: hda1
+-----------------------------------------------------------------------
+Writing and rereading the partition table takes a few seconds -
+don't be alarmed if nothing happens for six seconds or so.
+
+
+2. Three primary partitions: two of size 50MB and the rest:
+ sfdisk /dev/hda -uM << EOF
+ ,50
+ ,50
+ ;
+ EOF
+-----------------------------------------------------------------------
+New situation:
+Units = megabytes of 1048576 bytes, blocks of 1024 bytes, counting from 0
+
+ Device Boot Start End MB #blocks Id System
+/dev/hda1 0+ 50- 51- 51203+ 83 Linux native
+/dev/hda2 50+ 100- 51- 51204 83 Linux native
+/dev/hda3 100+ 203 104- 106488 83 Linux native
+Successfully wrote the new partition table
+ hda: hda1 hda2 hda3
+-----------------------------------------------------------------------
+/dev/hda1 is one block (in fact only half a block) shorter than
+/dev/hda2 because its start had to be shifted away from zero in
+order to leave room for the Master Boot Record (MBR).
+
+
+3. A 1MB OS2 Boot Manager partition, a 50MB DOS partition,
+ and three extended partitions (DOS D:, Linux swap, Linux):
+ sfdisk /dev/hda -uM << EOF
+ ,1,a
+ ,50,6
+ ,,E
+ ;
+ ,20,4
+ ,16,S
+ ;
+ EOF
+-----------------------------------------------------------------------
+ Device Boot Start End MB #blocks Id System
+/dev/hda1 0+ 1- 2- 1223+ a OS/2 Boot Manager
+/dev/hda2 1+ 51- 51- 51204 6 DOS 16-bit FAT >=32M
+/dev/hda3 51+ 203 153- 156468 5 Extended
+/dev/hda4 0 - 0 0 0 Empty
+/dev/hda5 51+ 71- 21- 20603+ 4 DOS 16-bit FAT <32M
+/dev/hda6 71+ 87- 17- 16523+ 82 Linux swap
+/dev/hda7 87+ 203 117- 119339+ 83 Linux native
+Successfully wrote the new partition table
+ hda: hda1 hda2 hda3 < hda5 hda6 hda7 >
+-----------------------------------------------------------------------
+All these rounded numbers look better in cylinder units:
+ % sfdisk -l /dev/hda
+-----------------------------------------------------------------------
+ Device Boot Start End #cyls #blocks Id System
+/dev/hda1 0+ 5 6- 1223+ a OS/2 Boot Manager
+/dev/hda2 6 256 251 51204 6 DOS 16-bit FAT >=32M
+/dev/hda3 257 1023 767 156468 5 Extended
+/dev/hda4 0 - 0 0 0 Empty
+/dev/hda5 257+ 357 101- 20603+ 4 DOS 16-bit FAT <32M
+/dev/hda6 358+ 438 81- 16523+ 82 Linux swap
+/dev/hda7 439+ 1023 585- 119339+ 83 Linux native
+-----------------------------------------------------------------------
+But still - why does /dev/hda5 not start on a cylinder boundary?
+Because it is contained in an extended partition that does.
+Of the chain of extended partitions, usually only the first is
+shown. (The others have no name under Linux anyway.) But
+these additional extended partitions can be made visible:
+ % sfdisk -l -x /dev/hda
+-----------------------------------------------------------------------
+ Device Boot Start End #cyls #blocks Id System
+/dev/hda1 0+ 5 6- 1223+ a OS/2 Boot Manager
+/dev/hda2 6 256 251 51204 6 DOS 16-bit FAT >=32M
+/dev/hda3 257 1023 767 156468 5 Extended
+/dev/hda4 0 - 0 0 0 Empty
+
+/dev/hda5 257+ 357 101- 20603+ 4 DOS 16-bit FAT <32M
+ - 358 1023 666 135864 5 Extended
+ - 257 256 0 0 0 Empty
+ - 257 256 0 0 0 Empty
+
+/dev/hda6 358+ 438 81- 16523+ 82 Linux swap
+ - 439 1023 585 119340 5 Extended
+ - 358 357 0 0 0 Empty
+ - 358 357 0 0 0 Empty
+
+/dev/hda7 439+ 1023 585- 119339+ 83 Linux native
+ - 439 438 0 0 0 Empty
+ - 439 438 0 0 0 Empty
+ - 439 438 0 0 0 Empty
+-----------------------------------------------------------------------
+
+Why the empty 4th input line? The description of the extended partitions
+starts after that of the four primary partitions.
+You force an empty partition with a ",0" input line, but here all
+space was divided already, so the fourth partition became empty
+automatically.
+
+How did I know about 4,6,a,E,S? Well, E,S,L stand for Extended,
+Swap and Linux. The other values are hexadecimal and come from
+the table:
+ % sfdisk -T
+ Id Name
+
+ 0 Empty
+ 1 DOS 12-bit FAT
+ 2 XENIX root
+ 3 XENIX usr
+ 4 DOS 16-bit FAT <32M
+ 5 Extended
+ 6 DOS 16-bit FAT >=32M
+ 7 OS/2 HPFS or QNX or Advanced UNIX
+ 8 AIX data
+ 9 AIX boot or Coherent
+ a OS/2 Boot Manager
+ ...
+
+
+4. Preserving the sectors changed by sfdisk.
+ % sfdisk -O save-hdd-partition-sectors /dev/hda
+ ...
+ will write the sectors overwritten by sfdisk to file.
+ If you notice that you trashed some partition, you may
+ be able to restore things by
+ % sfdisk -I save-hdd-partition-sectors /dev/hda
+ %
+
+5. Preserving some old partitions.
+ % sfdisk -N2 /dev/hda
+ ...
+ will only change the partition /dev/hda2, and leave the rest
+ unchanged. The most obvious application is to change an Id:
+ % sfdisk -N7 /dev/hda
+ ,,63
+ %
+-----------------------------------------------------------------------
+Old situation:
+
+ Device Boot Start End #cyls #blocks Id System
+/dev/hda1 0+ 5 6- 1223+ a OS/2 Boot Manager
+...
+/dev/hda6 358+ 438 81- 16523+ 82 Linux swap
+/dev/hda7 439+ 1023 585- 119339+ 83 Linux native
+
+New situation:
+
+ Device Boot Start End #cyls #blocks Id System
+/dev/hda1 0+ 5 6- 1223+ a OS/2 Boot Manager
+...
+/dev/hda6 358+ 438 81- 16523+ 82 Linux swap
+/dev/hda7 439+ 1023 585- 119339+ 63 GNU HURD
+-----------------------------------------------------------------------
+ Note that changing a logical partition into an empty partition
+ will decrease the number of all subsequent logical partitions.
+
+6. Deleting a partition.
+At first I thought of having an option -X# for deleting partitions,
+but there are several ways in which a partition can be deleted, and
+it is probably better to handle this just as a general change.
+ % sfdisk -d /dev/hda > ohda
+will write the current tables on the file `ohda'.
+-----------------------------------------------------------------------
+% cat ohda
+# partition table of /dev/hda
+unit: sectors
+
+/dev/hda1 : start= 1, size= 40799, Id= 5
+/dev/hda2 : start= 40800, size= 40800, Id=83
+/dev/hda3 : start= 81600, size= 336192, Id=83
+/dev/hda4 : start= 0, size= 0, Id= 0
+/dev/hda5 : start= 2, size= 40798, Id=83
+-----------------------------------------------------------------------
+In order to delete the partition on /dev/hda3, edit this file
+and feed the result to sfdisk again.
+-----------------------------------------------------------------------
+% emacs ohda
+% cat ohda
+# partition table of /dev/hda
+unit: sectors
+
+/dev/hda1 : start= 1, size= 40799, Id= 5
+/dev/hda2 : start= 40800, size= 40800, Id=83
+/dev/hda3 : start= 0, size= 0, Id= 0
+/dev/hda4 : start= 0, size= 0, Id= 0
+/dev/hda5 : start= 2, size= 40798, Id=83
+% sfdisk /dev/hda < ohda
+Old situation:
+Units = cylinders of 208896 bytes, blocks of 1024 bytes, counting from 0
+
+ Device Boot Start End #cyls #blocks Id System
+/dev/hda1 0+ 99 100- 20399+ 5 Extended
+/dev/hda2 100 199 100 20400 83 Linux native
+/dev/hda3 200 1023 824 168096 83 Linux native
+/dev/hda4 0 - 0 0 0 Empty
+/dev/hda5 0+ 99 100- 20399 83 Linux native
+New situation:
+Units = sectors of 512 bytes, counting from 0
+
+ Device Boot Start End #sectors Id System
+/dev/hda1 1 40799 40799 5 Extended
+/dev/hda2 40800 81599 40800 83 Linux native
+/dev/hda3 0 - 0 0 Empty
+/dev/hda4 0 - 0 0 Empty
+/dev/hda5 2 40799 40798 83 Linux native
+Successfully wrote the new partition table
+% sfdisk -l -V /dev/hda
+
+Disk /dev/hda: 12 heads, 34 sectors, 1024 cylinders
+Units = cylinders of 208896 bytes, blocks of 1024 bytes, counting from 0
+
+ Device Boot Start End #cyls #blocks Id System
+/dev/hda1 0+ 99 100- 20399+ 5 Extended
+/dev/hda2 100 199 100 20400 83 Linux native
+/dev/hda3 0 - 0 0 0 Empty
+/dev/hda4 0 - 0 0 0 Empty
+/dev/hda5 0+ 99 100- 20399 83 Linux native
+/dev/hda: OK
+-----------------------------------------------------------------------
+This is a good way of making changes: dump the current status
+to file, edit the file, and feed it to sfdisk.
+Preserving the file on some other disk could be useful:
+if ever the MBR gets thrashed it can be used to restore
+the old situation.