Script to add all the partitions to the fstab.
I wrote a simple script today to get all the partitions on all the disks and then create <a class="zem_slink freebase/en/fstab" title="Fstab" rel="wikipedia" href="http://en.wikipedia.org/wiki/Fstab">fstab entry with them. The script also gets the <a class="zem_slink freebase/en/universally_unique_identifier" title="Universally Unique Identifier" rel="wikipedia" href="http://en.wikipedia.org/wiki/Universally_Unique_Identifier">UUID and uses the same to make the entry ๐
<td>
<div class="bash codecolorer">
<span class="co0">#!/bin/bash -</span><br /> <span class="co0">#===============================================================================</span><br /> <span class="co0">#</span><br /> <span class="co0"># FILE: mount_add_all.sh</span><br /> <span class="co0">#</span><br /> <span class="co0"># USAGE: ./mount_add_all.sh</span><br /> <span class="co0">#</span><br /> <span class="co0"># DESCRIPTION: Find all the <a class="zem_slink freebase/en/disk_partitioning" title="Disk partitioning" rel="wikipedia" href="http://en.wikipedia.org/wiki/Disk_partitioning">disk partitions</a> and all those that are not present</span><br /> <span class="co0"># in the fstab.</span><br /> <span class="co0">#</span><br /> <span class="co0"># OPTIONS: ---</span><br /> <span class="co0"># REQUIREMENTS: ---</span><br /> <span class="co0"># BUGS: ---</span><br /> <span class="co0"># NOTES: ---</span><br /> <span class="co0"># AUTHOR: <a class="zem_slink" title="Digital Inspiration" rel="homepage" href="http://amit-agarwal.co.in">Amit Agarwal</a> (AKA), amit.agarwal@amit-agarwal.co.in</span><br /> <span class="co0"># COMPANY: Individual</span><br /> <span class="co0"># VERSION: 1.0</span><br /> <span class="co0"># CREATED: 06/19/2010 10:44:34 PM IST</span><br /> <span class="co0"># REVISION: 0.1</span><br /> <span class="co0">#===============================================================================</span><br /> <span class="re2">file</span>=<span class="st0">"/tmp/fstab"</span><br /> <span class="re2">disk_types</span>=<span class="br0">(</span>hd sd<span class="br0">)</span><br /> <span class="re2">count</span>=<span class="co1">${#disk_types}</span><br /> <br /> find_disks <span class="br0">(</span><span class="br0">)</span><br /> <span class="br0">{</span><br /> <span class="kw3">echo</span> <span class="co1">${#disk_types}</span> <span class="re1">$count</span><br /> <span class="kw1">for</span> i <span class="kw1">in</span> $<span class="br0">(</span><span class="kw2">seq</span> <span class="nu0">1</span> <span class="re1">$count</span><span class="br0">)</span><br /> <span class="kw1">do</span><br /> <span class="br0">(</span><span class="br0">(</span> <span class="re2">j</span>=i-<span class="nu0">1</span> <span class="br0">)</span><span class="br0">)</span><br /> <span class="kw3">echo</span> <span class="re1">$i</span> <span class="re1">$j</span><br /> <span class="kw3">echo</span> <span class="re1">$j</span> <span class="co1">${disk_types[0]}</span> <span class="co1">${disk_types[1]}</span><br /> disk_array<span class="br0">[</span><span class="re1">$j</span><span class="br0">]</span>=$<span class="br0">(</span><span class="kw2">ls</span> <span class="sy0"><</span>a <span class="re2">class</span>=<span class="st0">"zem_slink freebase/en/device_file_system"</span> <span class="re2">title</span>=<span class="st0">"Device file"</span> <span class="re2">rel</span>=<span class="st0">"wikipedia"</span> <span class="re2">href</span>=<span class="st0">"http://en.wikipedia.org/wiki/Device_file"</span><span class="sy0">>/</span>dev<span class="sy0"></</span>a<span class="sy0">>/</span><span class="co1">${disk_types[$j]}</span><span class="br0">[</span>a-z<span class="br0">]</span><span class="br0">)</span><br /> <span class="kw3">echo</span> <span class="co1">${disk_array[$j]}</span><br /> <span class="kw1">done</span><br /> <span class="br0">}</span> <span class="co0"># ---------- end of function find_disks ----------</span><br /> <br /> find_partitions <span class="br0">(</span><span class="br0">)</span><br /> <span class="br0">{</span><br /> <span class="kw3">echo</span> <span class="st0">"In find_partitions"</span><br /> <span class="re2">l</span>=<span class="nu0"></span><br /> <span class="re2">count</span>=<span class="co1">${#disk_types}</span><br /> <span class="kw1">for</span> i <span class="kw1">in</span> $<span class="br0">(</span><span class="kw2">seq</span> <span class="nu0">1</span> <span class="re1">$count</span><span class="br0">)</span><br /> <span class="kw1">do</span><br /> <span class="br0">(</span><span class="br0">(</span><span class="re2">j</span>=i-<span class="nu0">1</span><span class="br0">)</span><span class="br0">)</span><br /> <span class="kw1">for</span> k <span class="kw1">in</span> <span class="co1">${disk_array[$i]}</span><br /> <span class="kw1">do</span><br /> <span class="kw3">echo</span> <span class="re1">$k</span><br /> <span class="sy0"><!</span>--loginview start--<span class="sy0">></span>disk_partitions<span class="br0">[</span><span class="re1">$l</span><span class="br0">]</span>=<span class="sy0">`</span><span class="kw2">fdisk</span> <span class="re5">-l</span> <span class="re1">$k</span> <span class="sy0">|<</span>a <span class="re2">class</span>=<span class="st0">"zem_slink freebase/en/grep"</span> <span class="re2">title</span>=<span class="st0">"Grep"</span> <span class="re2">rel</span>=<span class="st0">"wikipedia"</span> <span class="re2">href</span>=<span class="st0">"http://en.wikipedia.org/wiki/Grep"</span><span class="sy0">></span><span class="kw2">grep</span><span class="sy0"></</span>a<span class="sy0">></span> <span class="st0">"^/dev"</span> <span class="sy0">|</span><span class="kw2">grep</span> <span class="re5">-v</span> <span class="st0">"Extended$"</span><span class="sy0">|</span><span class="kw2">cut</span> <span class="re5">-d</span><span class="st0">" "</span> -f1<span class="sy0">`</span><br /> <span class="kw3">echo</span> <span class="co1">${disk_partitions[$l]}</span> <span class="re1">$l</span><span class="sy0"><!</span>--loginview end--<span class="sy0">></span><br /> <span class="br0">(</span><span class="br0">(</span>l++<span class="br0">)</span><span class="br0">)</span><br /> <span class="kw1">done</span><br /> <span class="kw1">done</span><br /> <span class="br0">}</span> <span class="co0"># ---------- end of function find_partitions ----------</span><br /> <br /> add_fat <span class="br0">(</span><span class="br0">)</span><br /> <span class="br0">{</span><br /> <span class="kw3">echo</span> <span class="st0">"# Added with script for <span class="es2">$label</span> and <span class="es2">$k</span>"</span> <span class="sy0">>></span> <span class="re1">$file</span><br /> <span class="kw3">echo</span> <span class="st0">"<span class="es2">$uuid</span> /mnt/<span class="es2">$label</span> vfat nosuid,nodev,uhelper=udisks,uid=500,gid=500,shortname=mixed,dmask=0077 0 0"</span> <span class="sy0">>></span> <span class="re1">$file</span><br /> <span class="br0">}</span> <span class="co0"># ---------- end of function add_fat ----------</span><br /> <br /> add_<span class="sy0"><</span>a <span class="re2">class</span>=<span class="st0">"zem_slink freebase/en/ext3"</span> <span class="re2">title</span>=<span class="st0">"Ext3"</span> <span class="re2">rel</span>=<span class="st0">"wikipedia"</span> <span class="re2">href</span>=<span class="st0">"http://en.wikipedia.org/wiki/Ext3"</span><span class="sy0">></span>ext3<span class="sy0"></</span>a<span class="sy0">></span> <span class="br0">(</span><span class="br0">)</span><br /> <span class="br0">{</span><br /> <span class="kw3">echo</span> <span class="st0">"# Added with script for <span class="es2">$label</span> and <span class="es2">$k</span>"</span> <span class="sy0">>></span> <span class="re1">$file</span><br /> <span class="kw3">echo</span> <span class="st0">"<span class="es2">$uuid</span> /mnt/<span class="es2">$label</span> ext3 defaults 0 0"</span> <span class="sy0">>></span> <span class="re1">$file</span><br /> <br /> <span class="br0">}</span> <span class="co0"># ---------- end of function add_ext3 ----------</span><br /> <br /> find_UUID <span class="br0">(</span><span class="br0">)</span><br /> <span class="br0">{</span><br /> <span class="kw3">echo</span> <span class="st0">"In find_UUID with <span class="es2">$l</span>"</span><br /> <span class="br0">(</span><span class="br0">(</span>l--<span class="br0">)</span><span class="br0">)</span><br /> <span class="kw1">for</span> i <span class="kw1">in</span> $<span class="br0">(</span><span class="kw2">seq</span> <span class="nu0"></span> <span class="re1">$l</span><span class="br0">)</span><br /> <span class="kw1">do</span><br /> <span class="kw3">echo</span> <span class="co1">${disk_partitions[$i]}</span><br /> <span class="kw1">for</span> k <span class="kw1">in</span> <span class="co1">${disk_partitions[$i]}</span><br /> <span class="kw1">do</span><br /> <span class="kw3">echo</span> <span class="re1">$k</span><br /> <span class="sy0"><!</span>--loginview start--<span class="sy0">></span><span class="re2">temp</span>=$<span class="br0">(</span>blkid <span class="re1">$k</span><span class="br0">)</span><br /> <span class="re2">label</span>=$<span class="br0">(</span><span class="kw3">echo</span> <span class="re1">$temp</span><span class="sy0">|</span><span class="kw2">grep</span> <span class="st0">"LABEL="</span><span class="sy0">|</span><span class="kw2">sed</span> <span class="co3">\'</span>s<span class="sy0">/</span>.<span class="sy0">*</span><span class="re2">LABEL</span>=<span class="st0">"//\'|sed \'s/"</span>.<span class="sy0">*//</span><span class="co3">\'</span><span class="br0">)</span><br /> <span class="re2">uuid</span>=$<span class="br0">(</span><span class="kw3">echo</span> <span class="re1">$temp</span><span class="sy0">|</span><span class="kw2">grep</span> <span class="st0">"UUID="</span><span class="sy0">|</span><span class="kw2">sed</span> <span class="co3">\'</span>s<span class="sy0">/</span>.<span class="sy0">*</span><span class="re2">UUID</span>=<span class="st0">"//\'|sed \'s/"</span>.<span class="sy0">*//</span><span class="co3">\'</span><span class="br0">)</span><br /> <span class="re2">atype</span>=$<span class="br0">(</span><span class="kw3">echo</span> <span class="re1">$temp</span><span class="sy0">|</span><span class="kw2">grep</span> <span class="st0">"TYPE="</span><span class="sy0">|</span><span class="kw2">sed</span> <span class="co3">\'</span>s<span class="sy0">/</span>.<span class="sy0">*</span><span class="re2">TYPE</span>=<span class="st0">"//\'|sed \'s/"</span>.<span class="sy0">*//</span><span class="co3">\'</span><span class="br0">)</span><span class="sy0"><!</span>--loginview end--<span class="sy0">></span><br /> <span class="kw1">if</span> <span class="br0">[</span> <span class="re1">$atype</span> = <span class="st0">"vfat"</span> <span class="br0">]</span><br /> <span class="kw1">then</span><br /> add_fat <span class="re1">$label</span> <span class="re1">$uuid</span> <span class="re1">$k</span><br /> <span class="kw1">fi</span><br /> <span class="kw1">if</span> <span class="br0">[</span> <span class="re1">$atype</span> = <span class="st0">"ext3"</span> <span class="br0">]</span><br /> <span class="kw1">then</span><br /> add_ext3 <span class="re1">$label</span> <span class="re1">$uuid</span> <span class="re1">$k</span><br /> <span class="kw1">fi</span><br /> <span class="kw3">echo</span> <span class="re1">$label</span> <span class="re1">$uuid</span> <span class="re1">$atype</span><br /> <span class="kw1">done</span><br /> <span class="kw1">done</span><br /> <span class="br0">}</span> <span class="co0"># ---------- end of function find_UUID ----------</span><br /> <br /> find_disks<br /> find_partitions<br /> find_UUID
</div>
</td>
</tr>
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
Related articles by Zemanta
- Fedora 11 โ Mount options for vfat and other volumes for automount. (amit-agarwal.co.in)
- ESX4 cannot create datastore (edugeek.net)
- Creating a Partition on an External Hard Drive (brighthub.com)
- Partition Assistant v2.1 (lockergnome.com)
Related Articles:
- 2010/05/19 bash script to change icon theme to check out all the installed themes (personal)
- 2010/05/07 bash script to periodically change the cursor theme.
- 2010/06/09 Scripts to create logins from bash command โ for creating multiple accounts
- 2010/05/24 Menu driven ssh.
- 2010/04/11 Bugzilla Automation with perl โ add, update or query any bug in Bugzilla using perl and www series modules for perl.

Authored By Amit Agarwal
Amit Agarwal, Linux and Photography are my hobbies.Creative Commons Attribution 4.0 International License.