\documentclass[letterpaper]{article}
\nonstopmode
\akai
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage{url}
\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage[english]{babel}
\usepackage{epsfig}
\usepackage{null}
\def\addbibtoc{
\addcontentsline{toc}{section}{\numberline{\mbox{}}\relax\bibname}
}%end-preamble
\setcounter{page}{1}
\title{Loopback Encrypted Filesystem HOWTO}
\author{×÷Õß£ºRyan T. Rhea, {\ttfamily zzrhear@pobox.winthrop.edu} \\ 
ÒëÕß£ºÕÔÆ½Íû {\ttfamily tchao@worldnet.att.net} }
\date{v1.1, 29 November 1999 ·­ÒëÈÕÆÚ£º2000Äê1ÔÂ15ÈÕ}
\abstract{±¾ÎÄ¼þ½âÊÍÈçºÎ°²×°ºÍÊ¹ÓÃÒ»ÖÖÊ¹ÓÃÕß¼ÓÔØáá¿É¶¯Ì¬ºÍÎÞÐè²ÉÈ¡ÌØ±ð²½Öè¾ÍÄÜ¼ÓÃÜÎÄµµÄÚÈÝµÄÎÄµµÏµÍ³¡£ÕâÖÖÎÄµµÏµÍ³´æ·ÅÔÚÍ¨³£ÎÄ¼þÄÚ£¬Ëü¿É×÷ÎªÒþ²ØÎÄ¼þÒþ²Ø£¬Ò²¿ÉÊ¹ÓÃ¼«¿ÉÄÜ»á±»ºöÂÔµÄÒ»°ãÎÄµµÃû³Æ´æ·Å£¬ÒÔ´ËÌá¸ßÊý¾Ý×ÊÁÏ´¢´æµÄ°²È«¡£}


\begin{document}
\maketitle
\tableofcontents

\section{Ç°ÑÔ}

½¨Á¢Õâ¸öÎÄµµÏµÍ³ÐèÒªÓÐÄÚºËµÄÔ´´úÂë¡¢±à¼­´úÂëµÄÄÜÁ¦ºÍÄÍÐÄ£¬Í¬Ê±Ç¿ÁÒ½¨ÒéÊÖ±ßËæÊ±ÓÐÆô¶¯ÅÌ¿ÉÓÃ¡£
°ÑÖØÒª×ÊÁÏ³¤ÆÚ´æ·ÅÔÚ¼ÓÃÜµÄÎÄµµÏµÍ³Ö®Ç°£¬Ó¦Ê×ÏÈÖÆ×÷±¸·Ý±£´æ£¬
ÒòÎªÈÎºÎ´æ·ÅÔÚµçÄÔµÄ×ÊÁÏ¶¼ÓÐÔâµ½Ëð»µ²»¿ÉÈ¡ÓÃµÄ¿ÉÄÜ¡£

ÒªÍê³É½¨Á¢Õâ¸öÎÄµµÏµÍ³£¬ÆðÂëÒªÐÞ²¹ Linux ÄÚºË 2.2.9 °æ¡£¹Øì¶ÐÞ²¹µÄÏ¸½Ú£¬
¼ûÏÂÎÄ\ref{ÏêÏ¸ÄÚÈÝ} {()}Ò»½ÚÄÚµÄÄÚÈÝ¡£

ÄÚºËÔ´´úÂë¿É´ÓÏÂÁÐÍøÖ·ÏÂÔØ£º

\begin{tscreen}
\nameurl{ftp://ftp.kerneli.org/}{}
\end{tscreen}


¹Øì¶ÖØ±àÄÚºËµÄ³ÌÐò¿É²éÔÄÏà¹Ø HOWTO ÎÄ¼þ£¬ÍøÖ·ÈçÏÂ£º

\begin{tscreen}
\nameurl{http://metalab.unc.edu/LDP/HOWTO/}{}
\end{tscreen}


Õâ·ÝÎÄ¼þ¿ÉÈ«ÎÄ»ò²¿·Ö×ªÔØ£¬²»ÊÕ·ÑÓÃ£¬µ«Ðè·ûºÏÏÂÁÐÌõ¼þ£º

\begin{itemize}
\item ÔÚÈ«ÎÄ»ò²¿·Ö×ªÔØÖÐÓ¦È«ÎÄÔØÁÐ°æÈ¨ËµÃ÷ºÍÕâ·Ý×ªÔØÍ¬ÒâÊé¡£
\item ÈÎºÎ·­Òë»òÓÉÕâ·ÝÎÄ¼þÉú³ÉµÄÎÄ±¾ÔÚÉ¢·¢Ç°¾ùÓ¦È¡µÃ×÷ÕßµÄÊéÃæÍ¬Òâ¡£
\item Èç¹ûÖ»É¢·¢±¾ÎÄ²¿·ÖÄÚÈÝ£¬ÔòÓ¦ÔÚÉ¢·¢µÄÎÄ±¾ÄÚÁÐÈëÈ¡µÃ±¾ÎÄÈ«ÎÄµÄÏêÏ¸·½·¨ºÍÍ¾¾¶¡£
\item ÎÄÄÚËùÓÐÔ´´úÂë¾ùÊÜµ½ GNU Ò»°ã¹«¹²Ðí¿ÉÖ¤µÄ±£»¤¡£Ðí¿ÉÖ¤ÄÚÈÝ¿ÉÍ¨¹ýÄäÃû FTP ÍøÖ·ÏÂÔØ£º
\end{itemize}


\begin{tscreen}
\nameurl{ftp://prep.ai.mit.edu/pub/gnu/COPYING/}{}
\end{tscreen}





\section{µ¼ÑÔ}

ÕâÏî¹ý³ÌÊ¹ÓÃ¡°/dev/loop*¡±£¨ÔÚ¶àÊý°²×°ÏµÍ³ÖÐ* Îª 0-7 £©¼ÓÔØ loopback ÎÄµµÏµÍ³¡£
²ÉÓÃÍ¬ÖÖ·½·¨¿É½« Linux µÄÎÄµµÏµÍ³²»¼ÓÃÜµØ´æ·ÅÔÚ·Ç Linux ·Ö¸îÇø¡£ÔÚÇ°Êö LDP
ÍøÖ·ÉÏ´æÓÐ¹ØÓÚÕâ·½ÃæµÄ HOWTO¡£

ÎÄµµ¼ÓÃÜµÄ·½·¨¡õ¶à£¬°üÀ¨ XOR, DES, twofish, blowfish, cast128, serpent, MARS, RC6, DFC ºÍ IDEA¡£
¡°losetup¡±³ÌÊ½µÄ¹¤×÷±ãÊÇ½«¼ÓÃÜÎÄµµºÍÎÄµµÏµÍ³¼°ÆäÃÜÂëÁªÏµÔÚÒ»Æð¡£¸ù¾Ý¹ÜÀí kerneli.org
ºÍ¹ú¼Ê¼ÓÃÜÐÞ²¹Èí¼þ£¨international crypto patches£©µÄ Alexander Kjeldaas ÏÈÉúµÄ¿´·¨£¬
DES ºÍ losetup Ä¿Ç°²¢²»¼æÈÝ¡£
ÕâÊÇÓÉÓÚÕâÁ½ÖÖÈí¼þ´¦Àí parity bit µÄ·½·¨²»Í¬µÄÔµ¹Ê¡£Ä¿Ç° Linux ÏµÍ³²¢ÎÞÖ§³Ö DES
µÄ¼Æ»­£¬ÒòÎª DES ÃÜÂëµÄ¼ÓÃÜ³Ì¶È±È½Ï²»¹»ÑÏÃÜ¡£ 

Twofish, blowfish, cast128 ºÍ serpent ÃÜÂë¿ÉÈÎÒâÊ¹ÓÃ£¬Ã»ÓÐÈÎºÎÐí¿ÉÖ¤µÄÏÞÖÆ¡£
ÆäËûÃÜÂë¿ÉÄÜÓÐÒ»Ð©Ðí¿ÉÖ¤·½ÃæµÄ¹æ¶¨¡£ÓÐÐ©ÃÜÂëÈëÑ¡×÷Îª AES ±ê×¼¡£
×îááÑ¡¶¨µÄÃÜÂë½«×÷ÎªÈ«ÊÀ½çÃâ·ÑÊ¹ÓÃµÄÃÜÂë¡£

±¾ÎÄÊ¹ÓÃ serpent ¼ÓÃÜ·¨¼ÓÃÜ£¬ÒòÎªÕâÖÖ¼ÓÃÜ·¨±£ÃÜÐÔÇ¿£¬ÔËÐÐ¼«¿ì£¬Í¬Ê±¸ù¾Ý GPL µÄ¹æ¶¨¿ÉÃâ·ÑÉ¢·¢¡£
ÔÚ serpent ÓÐ¹ØµÄÎÄ¼þÖÐÖ¸³ö£¬serpent Èí¼þÊ¹ÓÃ Ross Anderson, Eli Biham ºÍ
Lars Knudsen Éè¼ÆµÄ³¤¶È 128-bit µÄÃÜÂë×é¡£Õâ¶ÔÊ¹ÓÃÕßµÄ±£ÃÜÒªÇóÌá¹©ÁË×î¸ß±£Ö¤£¬
ÒòÎªµ½Ä¿Ç°ÎªÖ¹£¬²¢ÎÞ½âÂëµÄ¼òµ¥°ì·¨¡£ÓÐ¹Ø serpent µÄÎÄ¼þ¼°ÆäÔ´´úÂë¿É´ÓÏÂÁÐÍøÖ·ÏÂÔØ£º

\begin{tscreen}
\nameurl{http://www.cl.cam.ac.uk/~rja14/serpent.html}{}
\end{tscreen}


Õâ·ÝÎÄ¼þ¼ÙÉèÊ¹ÓÃÕß½«ÃÜÂëÖ±½Ó±àÈëÄÚºË¡£²»¹ý£¬ÃÜÂëÒ²¿É×÷ÎªÄ£×é±àÈë£¬
µ«ÔÚ¸ÃÎÄ¼þÖÐ²¢Î´¶ÔÕâÖÖ·½·¨¼ÓÒÔÌÖÂÛ¡£²»¹ý·½·¨Ò²¡õ¼òµ¥£¬Ö»Ðè±à¼­¡°/etc/conf.module¡±;
ÏêÇé¼ûÇ°ÃæÌáµ½µÄ¹Øì¶±à¼­ÄÚºËµÄ HOWTO ÎÄ¼þ¡£




\section{ÕªÒª}

ÕâÏî¹ý³ÌÉæ¼°Ðí¶à²½Öè¡£ÔÚÏÂ½Ú\ref{ÏêÏ¸ÄÚÈÝ} {()}ÖÐ¶ÔÕâÐ©²½ÖèÓÐÏêÏ¸ËµÃ÷¡£
ÏÈ¶ÔÕâÐ©²½Öè×÷³öÕªÒªËµÃ÷Ò²ÐíÊÇ²»´íµÄÖ÷Òâ£¬ÒòÎª Unix ºÍ Linux µÄ¸ßÊÖÒ²Ðí²»ÐèÒªÏêÏ¸²½Öè¡£
ÕâÐ©²½ÖèÈçÏÂ£º

\begin{enumerate}
\item ÏÂÔØ×îÐÂµÄ¹ú¼Ê¼ÓÃÜÐÞ²¹Èí¼þ (±àÐ´±¾ÎÄÊ±µÄ×îÐÂ°æ±¾Îª¡°patch-int-2.2.10.4¡±)£º

\begin{tscreen}
\nameurl{http://ftp.kerneli.org/pub/kerneli/}{}
\end{tscreen}






\item ÐÞ²¹ÄÚºË



\item ÔËÐÐ 'config' (»ò 'menuconfig' »ò 'xconfig')£¬ÎªÐÂÄÚºËÉèÖÃ 'MakeFile'¡£
Éè¶¨¼ÓÃÜµÄ¸÷¸öÑ¡Ïî²¢²»¼¯ÖÐÔÚÒ»Æð¡£Ê×ÏÈ£¬ÒªÉè¶¨ÈÎºÎÑ¡Ïî¶¼µÃÑ¡ÓÃ 'Code
Maturity level options' ÏîÏÂµÄ 'Prompt for development and/or
incomplete code/drivers'¡£ÔÚ 'Crypto options' ÏîÏÂÑ¡ÓÃ 'crypto ciphers' ºÍ
'serpent' Á½Ïî¡£ÔÚ´ËÔÙ´Î¼ÙÉèÊ¹ÓÃ serpent ¼ÓÃÜ£¬²»¹ýÒ²¿ÉÊÔÓÃÆäËûµÄ¼ÓÃÜ°ì·¨¡£
ÔÚ´Ë±ØÐèÖ¸³ö£¬DES µ½ 2.2.10.4 °æ¶¼»¹ÓëÏµÍ³²»¼æÈÝ - ¹À¼ÆÎ´À´Ò²²»»á¼æÈÝ¡£ÔÚ
'Block Devices' ÏÂÓÐ¼¸¸öÖØÒªÑ¡Ïî±ØÐèÑ¡¶¨¡£Õâ°üÀ¨ 'Loopback
device support', 'Use relative block numbers as basis for transfer functions
(RECOMMENDED)' ºÍ 'General encryption support' µÈ¸÷Ïî¡£´Ë´¦²»ÒªÑ¡ 'cast 128'
»ò 'twofish' ¼ÓÃÜ¡£´ËÍâÔÚ¸÷ÖÖÍøÂ·ÖÐÒ²²»ÐèÑ¡È¡ÈÎºÎ¼ÓÃÜÑ¡Ïî¡£
ÈÎºÎÓÐ¹ØÄÚºËµÄÉèÖÃ·½·¨¾ù¿É²ÎÔÄ LDP ÎÄ¼þ£¬²»ÔÚ´Ë´¦ÔÙ´Î×¸Êö¡£



\item ±à¼­ÐÂÄÚºË



\item ±à¼­ '/etc/lilo.conf'£¬ÒÔ±ãÔÚÉèÖÃÎÄµµÄÚÔö¼ÓÐÂÄÚºË¡£ÔËÐÐ 'lilo -v' ½«ÄÚºË¼Óµ½
boot loader ÄÚ¡£



\item ´ÓÏÂÁÐÍøÖ·ÏÂÔØ×îÐÂµÄ 'util-linux' Ô´´úÂë (´Ë´¦Ê¹ÓÃ
'util-linux-2.9v' °æ)£º

\begin{tscreen}
\nameurl{ftp://ftp.kernel.org/pub/linux/utils/util-linux/}{}
\end{tscreen}






\item ½âÑ¹ 'util-linux' Ô´´úÂë¡£



\item ÀûÓÃÔÚ
'/usr/src/linux/Documentation/crypto/' Ä¿Â¼ÄÚµÄÏàÓ¦ÐÞ²¹Èí¼þ¡£



\item ×ÐÏ¸ÔÄ¶Á 'INSTALL'¡£ÕâÌ×Èí¼þÄÚÓÐÐí¶àÓëÏµÍ³ÓÐ¹ØµÄÎÄµµµÄÔ´´úÂë
£¨ÖØÒªµÄ¹¤¾ßÈç'login', 'passwd'ºÍ'init'µÈ£©¡£Èç¹ûÔÚ±à¼­ÕâÐ©Ô´´úÂëÖ®Ç°
²»×ÐÏ¸µØ±à¼­ MCONFIG£¬×îºÃÊÖÍ·ËæÊ±ÓÐÆô¶¯Æ¬¿ÉÓÃ£¬ÒòÎªÏµÍ³ËæÊ±¶¼»á´íÂÒ¡£
»ù±¾ÉÏ£¬½«ËùÓÐ 'HAVE\_*' ¶¼Éè³É¡°yes¡±£¬Ê¹ËùÓÐÖØÒªµÄÏµÍ³Èí¼þ¶¼²»»á±»¸ü¸Ä¡£
ÐèÒªÖØ½¨µÄ¹¤¾ßÊÇ 'mount' ºÍ 'losetup'£¬ÒÔÊÊºÏÐÂµÄ¼ÓÃÜÐèÒª¡£
Ï¸½Ú²»·Á²Î¿´ÏÂÎÄ\ref{ÏêÏ¸ÄÚÈÝ} {()}¡£



\item ±à¼­ºÍ°²×° 'util-linux'¡£



\item ÓÃÐÂÄÚºËÖØÐÂÆô¶¯µçÄÔ¡£



\item ±à¼­ '/etc/fstab'£¬Ôö¼Ó¼ÓÔØµã£¬²½ÖèÈçÏÂ£º

\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
/dev/loop0  /mnt/crypt  ext2  user,noauto,rw,loop 0 0
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}






\item ÈçÉÏÎÄ '/mnt/crypt' µÄ·½Ê½£¬½¨Á¢ÄÜÊÕ´æÎÄµµÏµÍ³µÄÄ¿Â¼¡£



\item ×÷ÎªÊ¹ÓÃÕß£¬ÊÕ´æ¼ÓÃÜµÄÎÄµµÈçÏÂ£º

\begin{tscreen}
\begin{verbatim}
dd if=/dev/urandom of=/etc/cryptfile bs=1M count=10
\end{verbatim}
\end{tscreen}






\item ÔËÐÐ losetup ÈçÏÂ£º

\begin{tscreen}
\begin{verbatim}
losetup -e serpent /dev/loop0 /etc/cryptfile
\end{verbatim}
\end{tscreen}


×¢Òâ£ºÉè¶¨Ê¹ÓÃÃÜÂëµÄ»ú»áÖ»ÓÐÒ»´Î¡£¿ÉÓÃÏÂÁÐÖ¸Áî²éºËÊ¹ÓÃÃÜÂë£º



\begin{tscreen}
\begin{verbatim}
losetup -d /dev/loop0
\end{verbatim}
\end{tscreen}


ÕâÌõÖ¸Áî»áÊ¹ loop device Í£Ö¹×÷ÓÃ¡£ËæááÔÙÆô¶¯ losetup ¾Í¿É²âÊÔÊ¹ÓÃÃÜÂë£¬·½·¨ÈçÏÂ£º



\begin{tscreen}
\begin{verbatim}
losetup -e serpent /dev/loop0 /etc/cryptfile
\end{verbatim}
\end{tscreen}






\item Éè¶¨ ext2 ÎÄµµÏµÍ³ÈçÏÂ£º

\begin{tscreen}
\begin{verbatim}
mkfs -t ext2 /dev/loop0 100000
\end{verbatim}
\end{tscreen}






\item ´ËÊ±¾Í¿É¼ÓÔØ¼ÓÃÜµÄÎÄµµÏµÍ³£º

\begin{tscreen}
\begin{verbatim}
mount -t ext2 /dev/loop0 /mnt/crypt
\end{verbatim}
\end{tscreen}






\item Íê³É¼ÓÃÜÖ®áá£¬¿ÉÐ¶ÔØºÍ±£»¤ÎÄµµÏµÍ³ÈçÏÂ£º

\begin{tscreen}
\begin{verbatim}
umount /dev/loop0
losetup -d /dev/loop0'
\end{verbatim}
\end{tscreen}




\end{enumerate}







\section{ÏêÏ¸ÄÚÈÝ\label{ÏêÏ¸ÄÚÈÝ}}

{\bfseries ÄÚºËÐÞ²¹Èí¼þ£º}

¿É´Ó¡°2.2.x¡±°æµÄÄÚºË¿ªÊ¼ÐÞ²¹ÄÚºË¡£Îª¡°2.2.x¡±°æµÄÄÚºË±àÐ´µÄÐÞ²¹Èí¼þ¶¼¸½´ø³ý´í³ÌÐò£¨bugfixes£©¡£
ÐÂ¹¦ÄÜ¶¼»á¼ÓÈë Linux ¡°2.3.x¡±°æµÄ¿ª·¢ÄÚºË¡£ÐÞ²¹ÄÚºËµÄ°ì·¨ÊÇÊ×ÏÈÈ¡µÃËùÓÐÐÞ²¹Èí¼þ£¬
È»ááÒÔÏÂÁÐÖ¸ÁîÐÞ²¹£º

\begin{tscreen}
\begin{verbatim}
cd /usr/src
gzip -cd patchXX.gz  patch -p0
\end{verbatim}
\end{tscreen}


ÖØ¸´ xx ¸÷°æ±¾µÄÐÞ²¹£¬´Ó´ÎÐòµÍµÄ xx Íù¸ßµÄ·½ÏòÒÀ´ÎÐÞ²¹¡£

ÄÚºËÔ´´úÂëµÄÄ¬ÈÏÄ¿Â¼ÊÇ '/usr/src/linux'¡£ÈçÔ´´úÂëÔÚÆäËûÄ¿Â¼£¬¿É´Ó  '/usr/src/linux'
½¨Á¢Ò»¸ö·ûºÅÁ¬½Ó£¨symbolic link£©¡£



{\bfseries Îª 'util-linux' µÄ±à¼­Éè¶¨ 'MCONFIG'£º}

ÒÔÏÂÊÇ±à¼­ 'util-linux' Ê±ÐÞ¸Ä 'MCONFIG' µµµÄ²¿·ÖÄÚÈÝ¡£ËæÖøÏµÍ³°æ±¾µÄ²»Í¬£¬ÐÞ¸Ä·½Ê½²¢²»ÍêÈ«ÏàÍ¬£¬
´Ë´¦»ù±¾ÉÏÒÔ RedHat 5.2 Îª×¼¡£¹Ø¼üÖ®´¦ÊÇ²»Òª¸²¸ÇÖØÒªµÄÏµÍ³¹¤¾ß£¬Àý Èç'login'¡¢'getty'»ò'passwd'
µÈ¡£ÒÔÏÂÁÐ³öÒ»Ð©ÖØÒªµÄÉè¶¨£º

\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
CPU=$(shell uname -m sed s/I.86/intel/)

LOCALEDIR=/usr/share/locale

HAVE_PAM=no

HAVE_SHADOW=yes

HAVE_PASSWD=yes

REQUIRE_PASSWORD=yes

ONLY_LISTED_SHELLS=yes

HAVE_SYSVINIT=yes

HAVE_SYSVINIT_UTILS=yes

HAVE_GETTY=yes

USE_TTY_GROUP=yes

HAVE_RESET=yes

HAVE_SLN=yes

CC=gcc
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}




{\bfseries ½¨Òé£º}

´Ó'dev/loop0' µ½ '/dev/loop7'£¬Õâ 8 ¸ö loopback devices ¾ù¿ÉÓÃÓÚ´Ë´¦¡£
ÀûÓÃÄ¿Â¼Ãû³Æ²»Ì«ÏÔÑÛµÄÄ¿Â¼×÷Îª¼ÓÔØµã¡£²»·ÁÔÚ home Ä¿Â¼ÄÚ½¨Á¢Ò»¸öÈ¨ÏÞÎª 700 µÄ¼ÓÃÜÄ¿Â¼¡£
Ò²ÓÃ²»ÏÔÑÛµÄÄ¿Â¼´æ·Å¼ÓÃÜÎÄµµ¡£²»·ÁÔÚ '/etc' ÄÚÊ¹ÓÃ 'sysfile' »ò 'config.data' ÕâÀàÃû³Æ¡£
Ò»°ãÕâÀàÃû³ÆµÄÄ¿Â¼»òÎÄµµ¶¼²»Ì«ÊÜÈË×¢Òâ¡£

ÏÂÁÐ Perl ½Å±¾¿ÉÓÃÓÚ¼ÓÔØºÍÐ¶ÔØÎÄµµÏµÍ³¡£½«Æä³­ÈëÏµÍ³£¬¸Ä³É¿ÉÔËÐÐ£¨chmod u+x£©£¬
È»áá´æ·ÅÔÚÂ·¾¶Ä¿Â¼ÖÐ¡£

\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
#!/usr/bin/perl -w
#
#minimal utility to setup loopback encryption filesystem
#Copyright 1999 by Ryan T. Rhea
`losetup -e serpent /dev/loop0 /etc/cryptfile`;
`mount /mnt/crypt`;
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


½«ÉÏÊö½Å±¾³ÆÎª 'loop'£¬¾Í¿ÉÓÃÒ»¸öÖ¸Áî£¨'loop'£©ºÍÃÜÂëÉè¶¨ loopback ¼ÓÃÜÎÄµµÏµÍ³¡£

\begin{tscreen}
\par
\addvspace{\medskipamount}
\nopagebreak\hrule
\begin{verbatim}
#!/usr/bin/perl -w
#
#minimal utility to deactivate loopback encryption filesystem
#Copyright 1999 by Ryan T. Rhea
`umount /mount/crypt`;
`losetup -d /dev/loop0`;
\end{verbatim} 
\nopagebreak\hrule 
\addvspace{\medskipamount}
\end{tscreen}


½«Õâ¸ö½Å±¾³ÆÎª 'unloop'£¬ÒÔááÖ»Òª¼üÈë 'unloop' ¾Í¿ÉÁ¢¼´Í£Ö¹Õâ¸öÎÄµµÏµÍ³µÄÔË×÷¡£

\end{document}
