Script to add all the partitions to the fstab.

2010-06-24 5 min read Bash Fedora

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"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FILE: &nbsp;mount_add_all.sh</span><br /> <span class="co0">#</span><br /> <span class="co0"># &nbsp; &nbsp; &nbsp; &nbsp; USAGE: &nbsp;./mount_add_all.sh</span><br /> <span class="co0">#</span><br /> <span class="co0"># &nbsp; DESCRIPTION: &nbsp;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"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; in the fstab.</span><br /> <span class="co0">#</span><br /> <span class="co0"># &nbsp; &nbsp; &nbsp; OPTIONS: &nbsp;---</span><br /> <span class="co0"># &nbsp;REQUIREMENTS: &nbsp;---</span><br /> <span class="co0"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BUGS: &nbsp;---</span><br /> <span class="co0"># &nbsp; &nbsp; &nbsp; &nbsp; NOTES: &nbsp;---</span><br /> <span class="co0"># &nbsp; &nbsp; &nbsp; &nbsp;AUTHOR: &nbsp;<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"># &nbsp; &nbsp; &nbsp; COMPANY: &nbsp;Individual</span><br /> <span class="co0"># &nbsp; &nbsp; &nbsp; VERSION: &nbsp;1.0</span><br /> <span class="co0"># &nbsp; &nbsp; &nbsp; CREATED: &nbsp;06/19/2010 10:44:34 PM IST</span><br /> <span class="co0"># &nbsp; &nbsp; &nbsp;REVISION: &nbsp;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">&#40;</span>hd sd<span class="br0">&#41;</span><br /> <span class="re2">count</span>=<span class="co1">${#disk_types}</span><br /> <br /> find_disks <span class="br0">&#40;</span><span class="br0">&#41;</span><br /> <span class="br0">&#123;</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">&#40;</span><span class="kw2">seq</span> <span class="nu0">1</span> <span class="re1">$count</span><span class="br0">&#41;</span><br /> <span class="kw1">do</span><br /> <span class="br0">&#40;</span><span class="br0">&#40;</span> <span class="re2">j</span>=i-<span class="nu0">1</span> <span class="br0">&#41;</span><span class="br0">&#41;</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">&#91;</span><span class="re1">$j</span><span class="br0">&#93;</span>=$<span class="br0">&#40;</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">&#91;</span>a-z<span class="br0">&#93;</span><span class="br0">&#41;</span><br /> <span class="kw3">echo</span> <span class="co1">${disk_array[$j]}</span><br /> <span class="kw1">done</span><br /> <span class="br0">&#125;</span> &nbsp; &nbsp;<span class="co0"># ---------- &nbsp;end of function find_disks &nbsp;----------</span><br /> <br /> find_partitions <span class="br0">&#40;</span><span class="br0">&#41;</span><br /> <span class="br0">&#123;</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">&#40;</span><span class="kw2">seq</span> <span class="nu0">1</span> <span class="re1">$count</span><span class="br0">&#41;</span><br /> <span class="kw1">do</span><br /> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re2">j</span>=i-<span class="nu0">1</span><span class="br0">&#41;</span><span class="br0">&#41;</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">&#91;</span><span class="re1">$l</span><span class="br0">&#93;</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">&#40;</span><span class="br0">&#40;</span>l++<span class="br0">&#41;</span><span class="br0">&#41;</span><br /> <span class="kw1">done</span><br /> <span class="kw1">done</span><br /> <span class="br0">&#125;</span> &nbsp; &nbsp;<span class="co0"># ---------- &nbsp;end of function find_partitions &nbsp;----------</span><br /> <br /> add_fat <span class="br0">&#40;</span><span class="br0">&#41;</span><br /> <span class="br0">&#123;</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&nbsp; nosuid,nodev,uhelper=udisks,uid=500,gid=500,shortname=mixed,dmask=0077&nbsp; 0 0"</span> &nbsp;<span class="sy0">>></span> <span class="re1">$file</span><br /> <span class="br0">&#125;</span> &nbsp; &nbsp;<span class="co0"># ---------- &nbsp;end of function add_fat &nbsp;----------</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">&#40;</span><span class="br0">&#41;</span><br /> <span class="br0">&#123;</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">&#125;</span> &nbsp; &nbsp;<span class="co0"># ---------- &nbsp;end of function add_ext3 &nbsp;----------</span><br /> <br /> find_UUID <span class="br0">&#40;</span><span class="br0">&#41;</span><br /> <span class="br0">&#123;</span><br /> <span class="kw3">echo</span> <span class="st0">"In find_UUID with <span class="es2">$l</span>"</span><br /> <span class="br0">&#40;</span><span class="br0">&#40;</span>l--<span class="br0">&#41;</span><span class="br0">&#41;</span><br /> <span class="kw1">for</span> i <span class="kw1">in</span> $<span class="br0">&#40;</span><span class="kw2">seq</span> <span class="nu0"></span> <span class="re1">$l</span><span class="br0">&#41;</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">&#40;</span>blkid <span class="re1">$k</span><span class="br0">&#41;</span><br /> <span class="re2">label</span>=$<span class="br0">&#40;</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">&#41;</span><br /> <span class="re2">uuid</span>=$<span class="br0">&#40;</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">&#41;</span><br /> <span class="re2">atype</span>=$<span class="br0">&#40;</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">&#41;</span><span class="sy0"><!</span>--loginview end--<span class="sy0">></span><br /> <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="re1">$atype</span> = <span class="st0">"vfat"</span> <span class="br0">&#93;</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">&#91;</span> <span class="re1">$atype</span> = <span class="st0">"ext3"</span> <span class="br0">&#93;</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">&#125;</span> &nbsp; &nbsp;<span class="co0"># ---------- &nbsp;end of function find_UUID &nbsp;----------</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
\"Enhanced

Fedora 11 Leonidas — Fix HDD (Hard Disk) and CD/DVD automount issues for users other than root.

2010-06-22 1 min read Fedora

I have been thinking of putting this for quite some time now. By default no user (other than root) on Fedora 11 has the permission to mount CD/DVD and or ntfs/vfat partitions. So HAL automount does not work for these.

Here is something you can do to fix this:

Open System-> Preferences -> Authourizations

<a href="http://blog.amit-agarwal.co.in/wp-content/uploads/2010/08/Screenshot-Authorizations.jpg"><img class="size-full wp-image-905" title="Screenshot-Authorizations" src="http://blog.amit-agarwal.co.in/wp-content/uploads/2010/08/Screenshot-Authorizations.jpg" alt="Screenshot-Authorizations" width="800" height="700" />

Now, go to org -> hal -> storage and make the changes to suit your needs. You can add or remove a particular user for the operation with the Grant or Block buttons or for all the users system-wide with the Edit button.

Continue reading

Working with FTP Directories.

2010-05-19 1 min read Linux

If you have to manage some ftp site, I can understand you pain in managing the site with FTP. Specially if you are managing a site where you need to edit the files. Without shelling out some decent amount of money you will not get decent editor which can help you edit the files directly over ftp. So today I spent my time looking for a good solution and UREKA I found it.

Continue reading

Disk identification by UUID in Fedora.

2010-05-19 2 min read GNOME Linux

Yesterday I managed to delete my complete /usr directory and thus had to re-install my OS but I learned something new yesterday which I didn&#8217;t know earlier or actually never bothered to find out.br /br /All the partitions are mounted by udev using the UUID or label now. Finding the label of setting the label is easy but that was not the case with UUID (at least till you dont know how to do it). So finally I set my foot to search it. Heres some of the things that I found:br /br /bblkid/b – Gives you a list like below for all your partitions:br //dev/sda6: UUID=&#8221;8D8A-6CF1&#8221; TYPE=&#8221;vfat&#8221; LABEL=&#8221;Backup&#8221; br /So this is sufficient to modify your fstab to refer to the UUID or label instead of the drive. So whats the change in fstab. If the earlier entry looks likebr //dev/sdb6nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; /media/Bkup3nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; vfatnbsp;nbsp;nbsp; uid=500,nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; 0 0br /then you can change this to :br /UUID=&#8221;8D8A-6CF1&#8221;nbsp;nbsp; /media/Bkup3nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; vfatnbsp;nbsp;nbsp; uid=500,nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; 0 0br /What is the benifit:br /———————br /When you re-format your Hard Disk there is a likely possibility that the dev name could well change and thus completely changing the mount points for all your fstab entries. This is really a pain if you have 10 or more partitions like the way I have. So if you use label or UUID then they never change and your mount points remain the same.br /br /Effective use: Use autofs package to automatically mount all your partitions. Autofs mounts the package at /media/LABEL, so before you hit to start your autofs label all your disks.br /br /Other ways to find the disk labels and UUID&#8217;s:br /ls /dev/disk/by-uuid –gt; simplest way. :)br /br /Will get back to this later with more details.br /br /

Continue reading

Fedora 11 - Mount options for vfat and other volumes for automount.

2010-03-11 2 min read Fedora

I have been searching to look for how to change the default umask and dmask for the auto-mounted directories. I searched all the google and bing pages that I could, but to no avail. But I found some interesting info though.

Fedora now uses DeviceKit for managing the disks and Devicekit calls udev for actually mounting and unmounting the disks. The operation is controlled by policykit to determine who can do what?

Continue reading

Mount and unmount/umount images(iso/img) from nautilus (Fixed not mounting in Fedora)

2010-03-09 2 min read Fedora GNOME

Get the Nautilus Script <a href="http://gnome-look.org/content/show.php/moiso?content=84301" target="_blank">here. So what is required is that you have the necessary permission to run mount and umount as normal user with sudo command. If you are using gksu or gnomesu then you can change this in the script that you will get. Once you have got the script then you can run the installer for the script that comes in the package.

If you are running this is Fedora then you would need to make one more change other than the ones done by the installer, which is to allow sudo from non tty devices. Since this will be running from the nautilus so the script will not have any tty device and hence you would need to comment the following in the /etc/sudoers file:

Continue reading