<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le coin du sysadmin &#187; bsdlabel</title>
	<atom:link href="http://laurent.cligny.net/index.php/tag/bsdlabel/feed/" rel="self" type="application/rss+xml" />
	<link>http://laurent.cligny.net</link>
	<description>La connaissance s&#039;accroit en la partagant</description>
	<lastBuildDate>Tue, 15 Feb 2011 08:45:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Repartitionner son disque sous FreeBSD</title>
		<link>http://laurent.cligny.net/index.php/2008/12/13/repartitionner-freebsd/</link>
		<comments>http://laurent.cligny.net/index.php/2008/12/13/repartitionner-freebsd/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 16:49:46 +0000</pubDate>
		<dc:creator>laurent</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[bsdlabel]]></category>
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://laurent.cligny.net/?p=62</guid>
		<description><![CDATA[Il y a peu, attiré par les sirènes du comble du hype d&#8217;avoir un serveur dédié, et juste pour dire que, moi aussi, je fais partie du club très peu fermé des zadministrateurs en herbe, je me suis offert la location d&#8217;une dedibox (pour ne pas citer de marque). En plus c&#8217;est chouette me dis-je, [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a peu, attiré par les sirènes du comble du hype d&#8217;avoir un serveur dédié, et juste pour dire que, moi aussi, je fais partie du club très peu fermé des zadministrateurs en herbe, je me suis offert la location d&#8217;une dedibox (pour ne pas citer de marque).</p>
<p>En plus c&#8217;est chouette me dis-je, car dedibox propose du FreeBSD comme système d&#8217;exploitation à l&#8217;installation du serveur.</p>
<p>Mais, (car sans &#8220;mais&#8221; je n&#8217;aurais pas fais ce billet) hélas pour moi qui aime partitionner mon système comme je le souhaite, il n&#8217;y a pas (encore) possibilité de personnaliser son partitionnement à l&#8217;installation.<span id="more-62"></span></p>
<p>Je me retrouve donc avec un slice d&#8217;environ 140 Gio, peuplée de seulement 3 labels (ou partitions):</p>
<p>/ de 1024 Mio</p>
<p>/usr de 70 Gio</p>
<p>/var de 70 Gio aussi</p>
<p>Or moi je veux un /tmp et un /home séparés, dans leur partitions propres. Est-ce trop demander ô monde cruel ?</p>
<p>Il ya bien growfs(8) qui permet, comme son nom l&#8217;indique, d&#8217;agrandir un système de fichier existant. Mais je veux plutot <span style="text-decoration: underline;">reduire</span> /var pour créer un /tmp et un /home dans l&#8217;espace libéré, donc exit growfs(8) <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  (à quand un shrinkfs(8)).</p>
<p>Il ne me reste plus qu&#8217;à faire ça à la bonne franquette, à la mimine, les mains dans le cambouis. Nous allons sauvegarder, effacer, recréer, puis restaurer les partitions dont la taille va changer ou qui vont être créées.</p>
<p><span style="color: #ff0000;"><strong>Attention: dans cet exemple nous n&#8217;allons toucher qu&#8217;à /var, c&#8217;est pourquoi nous ne sauvegardons que lui. Dans tous les cas, <span style="text-decoration: underline;">ayez des sauvegardes à jour de vos données importantes</span> et si possible en double dans un endroit sûr. Je ne saurais être tenu responsable d&#8217;une quelconque perte de donnée !</strong></span></p>
<p>D&#8217;abord on coupe un maximum de daemons via /etc/rc.d et /usr/local/etc/rc.d (j&#8217;ai fait mon repartitionnement en ne gardant que ssh de lancé).</p>
<p>On note quelquepart la sortie de la commande mount sans arguments, afin d&#8217;avoir sous la main la correspondance entre nos partitions et nos points de montage:</p>
<address style="padding-left: 30px;"># mount</address>
<address style="padding-left: 30px;">/dev/ad4s1a on / (ufs, local)</address>
<address style="padding-left: 30px;">devfs on /dev (devfs, local)</address>
<address style="padding-left: 30px;">/dev/ad4s1d on /usr (ufs, local, soft-updates)</address>
<address style="padding-left: 30px;">/dev/ad4s1e on /var (ufs, local, soft-updates)</address>
<address> </address>
<p>On sauvegarde la partition /var quelque part dans /usr (que nous n&#8217;avons pas l&#8217;intention de toucher) (&#8220;man 8 dump&#8221; pour la signification des flags):</p>
<address style="padding-left: 30px;"># dump -a0uLf /usr/dediboxuser/backup/var.dump /var</address>
<address> </address>
<p>On &#8220;dé-monte&#8221; la partition /var</p>
<address style="padding-left: 30px;"># umount -f /var</address>
<p>On change la valeur de la sysctl kern.geom.debugflags afin de pouvoir modifier le partitionnement en &#8220;Live&#8221;.</p>
<address style="padding-left: 30px;"># sysctl kern.geom.debugflags=16</address>
<p>On edite la table des labels afin de supprimer l&#8217;entrée correspondant à notre /var d&#8217;origine (la partition &#8220;e&#8221; dans mon cas)</p>
<address style="padding-left: 30px;"># bsdlabel -e ad4s1</address>
<p>Cela nous ouvre la table des labels dans notre éditeur par défaut, supprimez la ligne correspondant au /var d&#8217;origine (partition &#8220;e&#8221; dans mon cas), sauvez les modifications et quitter l&#8217;éditeur. Notez que l&#8217;on pourrait ajouter nos nouvelles partitions /tmp /home et /var maintenant en les ajoutant dans la table des labels, mais son format étant non-intuitif, nous allons faire nos modifs avec sysinstall.</p>
<address style="padding-left: 30px;"># sysinstall </address>
<p>Dans le menu, entrez dans &#8220;Custom&#8221;, puis ensuite dans &#8220;Label&#8221;.</p>
<p>Pour créer une partitions dans l&#8217;espace devenu disponible:</p>
<p>Touche &#8220;C&#8221; -&gt; Selectionnez &#8220;a filesystem&#8221; -&gt;OK-&gt; Entrez la taille en G (ex: 1G) -&gt;OK-&gt; Entrez le point de montage (ex: /tmp)-&gt;OK</p>
<p>Une fois créées toutes vos nouvelles partitions, appuyez sur la touche &#8220;W&#8221; pour écrire les modifications. Vous pouvez ignorer les différentes erreurs qui s&#8217;affichent. Notez quelquepart le nouveau partitionnement, avec le nom des partitions et les points de montage correspondant. Sortez de sysinstall.</p>
<p>On relance bsdlabel pour ecrire pour de bon les modifs</p>
<p style="padding-left: 30px;"># bsdlabel -e ad4s1</p>
<p>Sauvez le fichiers sans rien modifier et quittez l&#8217;éditeur.</p>
<p>On contrôle que les périphériques correspondants aux nouvelles partitions ont bien été créées:</p>
<address style="padding-left: 30px;"> # ls -l /dev/ad4s1*<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  72 Dec 11 16:59 /dev/ad4s1<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  73 Dec 11 16:59 /dev/ad4s1a<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  74 Dec 11 16:59 /dev/ad4s1b<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  75 Dec 11 16:59 /dev/ad4s1c<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  76 Dec 11 16:59 /dev/ad4s1d<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  77 Dec 11 16:59 /dev/ad4s1e<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  78 Dec 11 16:59 /dev/ad4s1f<br />
 crw-r&#8212;&#8211;  1 root  operator    0,  79 Dec 11 16:59 /dev/ad4s1g<br />
 </address>
<p>On remarque l&#8217;apparition de ad4s1f et ad4s1g, qui correspondent aux nouvelles partitions.</p>
<p>On créé maintenant des systèmes de fichiers sur les nouvelles partitions vierges (ne pas oublier ad4s1e, qui a été supprimée et recréée plus petite):</p>
<address style="padding-left: 30px;"># newfs -U -O2 /dev/ad4s1e</address>
<address style="padding-left: 30px;"># newfs -U -O2 /dev/ad4s1f</address>
<address style="padding-left: 30px;"># newfs -U -O2 /dev/ad4s1g</address>
<p>On edite /etc/fstab, pour ajouter/modifier les entrées correspondantes aux nouvelles partitions (le partitionnement qui a été noté à l&#8217;étape sysinstall est utile maintenant)</p>
<address style="padding-left: 30px;">/dev/ad4s1e       /tmp       ufs      rw      2      2</address>
<address style="padding-left: 30px;">/dev/ad4s1f       /home     ufs      rw      2      2</address>
<address style="padding-left: 30px;">/dev/ad4s1g      /var         ufs      rw      2      2</address>
<p>Puis on monte nos nouvelles partitions:</p>
<address style="padding-left: 30px;"># mount -a</address>
<p>Et on vérifie:</p>
<address style="padding-left: 30px;"># mount</address>
<address style="padding-left: 30px;">/dev/ad4s1a on / (ufs, local)</address>
<address style="padding-left: 30px;">devfs on /dev (devfs, local)</address>
<address style="padding-left: 30px;">/dev/ad4s1d on /usr (ufs, local, soft-updates)</address>
<address style="padding-left: 30px;">/dev/ad4s1e on /tmp (ufs, local, soft-updates)</address>
<address style="padding-left: 30px;">/dev/ad4s1f on /home (ufs, local, soft-updates)</address>
<address style="padding-left: 30px;">/dev/ad4s1g on /var (ufs, local, soft-updates)</address>
<p>Les nouvelles partitions sont bien montées <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Il ne reste plus qu&#8217;à restorer les données de notre ancien /var</p>
<address style="padding-left: 30px;"># cd /var</address>
<address style="padding-left: 30px;"># restore -rf /usr/home/dediboxuser/backup/var.dump</address>
<p style="padding-left: 30px;">Pensez aussi à déplacer vos données de /usr/home vers /home et de modifier les utilisateurs locaux pour qu&#8217;il utilisent /home/%u plutôt que /usr/home/%u</p>
<p>Voilà, c&#8217;est à peu près tout <img src='http://laurent.cligny.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://laurent.cligny.net/index.php/2008/12/13/repartitionner-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

