<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/LinuxWiki" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/LinuxWiki" type="application/rss+xml"></fs:self_link><lastBuildDate>Sun, 05 Feb 2012 02:54:26 GMT</lastBuildDate><title>Linux Wiki - 最新文档</title><description>Linux Wiki的新文章</description><link>http://linux-wiki.cn/wiki/Special:HtmlRss</link><language>zh</language><pubDate>Sat, 18 Feb 2012 08:25:39 GMT</pubDate><item><title>SSH端口转发（隧道）</title><link>http://linux-wiki.cn/wiki/SSH%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%88%E9%9A%A7%E9%81%93%EF%BC%89</link><description>&lt;p&gt;Chenxing: references&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;p&gt;&lt;a href=&quot;/index.php?title=SSH&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;SSH（尚未撰写）&quot;&gt;SSH&lt;/a&gt;端口转发(Port Forwarding)，是一种隧道技术，流往某端口的数据被加密后传向另一机器，依据转发方式的不同，有多种应用场景。&lt;sup id=&quot;cite_ref-0&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-0&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&quot;cite_ref-1&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-1&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;
&lt;/p&gt;&lt;p&gt;以下所有的命令都是用SSH客户端执行的。执行命令的电脑下面称为“本地”电脑；而“远程服务器”则是运行着SSH服务器的机器（本文以&lt;tt&gt;my-remote-host.com&lt;/tt&gt;为例）。
&lt;/p&gt;
&lt;table id=&quot;toc&quot; class=&quot;toc&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;div id=&quot;toctitle&quot;&gt;&lt;h2&gt;目录&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;toclevel-1 tocsection-1&quot;&gt;&lt;a href=&quot;#.E6.9C.AC.E5.9C.B0.E8.BD.AC.E5.8F.91&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;本地转发&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-2&quot;&gt;&lt;a href=&quot;#.E8.BF.9C.E7.A8.8B.E8.BD.AC.E5.8F.91&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;远程转发&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-3&quot;&gt;&lt;a href=&quot;#.E5.8A.A8.E6.80.81.E8.BD.AC.E5.8F.91&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;动态转发&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-4&quot;&gt;&lt;a href=&quot;#.E5.B8.B8.E7.94.A8.E5.8F.82.E6.95.B0&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;常用参数&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-5&quot;&gt;&lt;a href=&quot;#.E7.9B.B8.E5.85.B3.E8.B5.84.E6.96.99&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;5&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;相关资料&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E6.9C.AC.E5.9C.B0.E8.BD.AC.E5.8F.91&quot;&gt;本地转发&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;有时，远程机器能访问某个端口（如&lt;tt&gt;remote-secret.com:8080&lt;/tt&gt;），但本地机器无法访问。这时使用SSH的本地转发功能，即可将远程端口映射到本地：
&lt;/p&gt;
&lt;pre&gt;ssh -L 9090:remote-secret.com:8080 my-remote-host.com
&lt;/pre&gt;
&lt;p&gt;此时访问本地的9090端口就相当于用远程服务器&lt;tt&gt;my-remote-host.com&lt;/tt&gt;访问&lt;tt&gt;remote-secret.com:8080&lt;/tt&gt;。
&lt;/p&gt;
&lt;div style=&quot;margin:10px 20px 0 20px; border: 1px solid #eebbdd; padding: 4px 4px 4px 4px; background-color:#fcf0f0;&quot;&gt;&lt;div class=&quot;floatleft&quot;&gt;&lt;a href=&quot;/wiki/File:Hint.gif&quot; class=&quot;image&quot;&gt;&lt;img alt=&quot;Hint.gif&quot; src=&quot;/images/7/7d/Hint.gif&quot; width=&quot;24&quot; height=&quot;22&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font color=&quot;#0000aa&quot;&gt;&lt;b&gt;提示：&lt;/b&gt;&lt;/font&gt;
&lt;br /&gt;如果写成&lt;tt&gt;-L 9090:localhost:8080&lt;/tt&gt;，就是把远程服务器的8080端口映射到本地的9090端口了&lt;/div&gt;
&lt;p&gt;应用举例：如果远程服务器处于某受保护的内网中，可以借助其SSH服务获得与其等同的访问权限。
&lt;/p&gt;
&lt;div style=&quot;margin:10px 20px 0 20px; border: 1px solid #eebbdd; padding: 4px 4px 4px 4px; background-color:#fcf0f0;&quot;&gt;&lt;div class=&quot;floatleft&quot;&gt;&lt;a href=&quot;/wiki/File:Hint.gif&quot; class=&quot;image&quot;&gt;&lt;img alt=&quot;Hint.gif&quot; src=&quot;/images/7/7d/Hint.gif&quot; width=&quot;24&quot; height=&quot;22&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font color=&quot;#0000aa&quot;&gt;&lt;b&gt;提示：&lt;/b&gt;&lt;/font&gt;
&lt;br /&gt;默认情况下，本地转发的端口只能在本机上访问，要想允许外部访问，请添加&lt;i&gt;-g&lt;/i&gt;选项。&lt;/div&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E8.BF.9C.E7.A8.8B.E8.BD.AC.E5.8F.91&quot;&gt;远程转发&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;让远程服务器监听&lt;tt&gt;remote_port&lt;/tt&gt;端口，使其被访问时像本地电脑在访问&lt;tt&gt;somehost:its_port&lt;/tt&gt;一样。
&lt;/p&gt;
&lt;pre&gt;ssh -R 9090:local-secret.com:8080 my-remote-host.com
&lt;/pre&gt;
&lt;p&gt;这样，访问&lt;tt&gt;my-remote-host.com:9090&lt;/tt&gt;就等同于用本机访问&lt;tt&gt;local-secret.com:8080&lt;/tt&gt;。
&lt;/p&gt;&lt;p&gt;应用举例：有时，本地电脑处于NAT内网中，难以从外部访问；而远程服务器可轻易被访问。利用远程转发功能，可允许他人通过远程服务器间接访问本地电脑的某个端口。
&lt;/p&gt;
&lt;div style=&quot;margin:10px 20px 0 20px; border: 1px solid #bbddee; padding: 4px 4px 4px 4px; background-color:#f0f0fc;&quot;&gt;&lt;div class=&quot;floatleft&quot;&gt;&lt;a href=&quot;/wiki/File:Note.gif&quot; class=&quot;image&quot;&gt;&lt;img alt=&quot;Note.gif&quot; src=&quot;/images/6/62/Note.gif&quot; width=&quot;18&quot; height=&quot;18&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font color=&quot;#0000aa&quot;&gt;&lt;b&gt;注意：&lt;/b&gt;&lt;/font&gt;
&lt;br /&gt;类似本地转发，远程转发的端口默认也只能在远程服务器本机上访问，要想允许外部访问，可改写为&lt;tt&gt;-R *:9090:local-secrent.com:8080&lt;/tt&gt;，并确保在服务器的&lt;i&gt;sshd_config&lt;/i&gt;中打开了&lt;tt&gt;GatewayPorts&lt;/tt&gt;选项。&lt;/div&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E5.8A.A8.E6.80.81.E8.BD.AC.E5.8F.91&quot;&gt;动态转发&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;动态转发动态地将各种数据转发到远程端口。实际上相当于在本地电脑的指定端口开了一个SOCKS代理。如：
&lt;/p&gt;
&lt;pre&gt;ssh -D 9090 my-remote-host.com
&lt;/pre&gt;
&lt;p&gt;本地的9090端口就是一个SOCKS代理了。
&lt;/p&gt;
&lt;div style=&quot;margin:10px 20px 0 20px; border: 1px solid #eebbdd; padding: 4px 4px 4px 4px; background-color:#fcf0f0;&quot;&gt;&lt;div class=&quot;floatleft&quot;&gt;&lt;a href=&quot;/wiki/File:Hint.gif&quot; class=&quot;image&quot;&gt;&lt;img alt=&quot;Hint.gif&quot; src=&quot;/images/7/7d/Hint.gif&quot; width=&quot;24&quot; height=&quot;22&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font color=&quot;#0000aa&quot;&gt;&lt;b&gt;提示：&lt;/b&gt;&lt;/font&gt;
&lt;br /&gt;如果&lt;tt&gt;my-remote-host.com&lt;/tt&gt;是境外服务器，则该SOCKS代理实际上具备了“翻墙”功能。&lt;/div&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E5.B8.B8.E7.94.A8.E5.8F.82.E6.95.B0&quot;&gt;常用参数&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;端口转发常与以下参数配合使用&lt;sup id=&quot;cite_ref-2&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-2&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;：
&lt;/p&gt;
&lt;dl&gt;&lt;dt&gt;-f&lt;/dt&gt;&lt;dd&gt;ssh将在后台运行
&lt;/dd&gt;&lt;dt&gt;-N&lt;/dt&gt;&lt;dd&gt;不执行命令，仅转发端口
&lt;/dd&gt;&lt;dt&gt;-C&lt;/dt&gt;&lt;dd&gt;压缩传送的数据
&lt;/dd&gt;&lt;dt&gt;-i&lt;/dt&gt;&lt;dd&gt;使用指定的密钥登录
&lt;/dd&gt;&lt;/dl&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E7.9B.B8.E5.85.B3.E8.B5.84.E6.96.99&quot;&gt;相关资料&lt;/span&gt;&lt;/h2&gt;
&lt;ol class=&quot;references&quot;&gt;&lt;li id=&quot;cite_note-0&quot;&gt;&lt;a href=&quot;#cite_ref-0&quot;&gt;↑&lt;/a&gt; &lt;a href=&quot;http://blog.jianingy.com/2009/09/ssh%E9%9A%A7%E9%81%93%E6%8A%80%E6%9C%AF%E7%AE%80%E4%BB%8B/&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;SSH隧道技术简介&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;cite_note-1&quot;&gt;&lt;a href=&quot;#cite_ref-1&quot;&gt;↑&lt;/a&gt; &lt;a href=&quot;https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;实战 SSH 端口转发&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;cite_note-2&quot;&gt;&lt;a href=&quot;#cite_ref-2&quot;&gt;↑&lt;/a&gt; &lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=700317&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Ubuntu Forum: SSH Port forwarding, without shell invocation&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/607311287/LinuxWiki/feedsky/s.gif?r=http://linux-wiki.cn/wiki/SSH%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%88%E9%9A%A7%E9%81%93%EF%BC%89&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Sun, 05 Feb 2012 10:54:26 +0800</pubDate><author>Chenxing</author><comments>http://linux-wiki.cn/wiki/Talk:SSH%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%88%E9%9A%A7%E9%81%93%EF%BC%89</comments><guid isPermaLink="false">http://linux-wiki.cn/wiki/SSH%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%88%E9%9A%A7%E9%81%93%EF%BC%89</guid><dc:creator>Chenxing</dc:creator><fs:srclink>http://linux-wiki.cn/wiki/SSH%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%EF%BC%88%E9%9A%A7%E9%81%93%EF%BC%89</fs:srclink><fs:srcfeed>http://linux-wiki.cn/index.php?title=Special:HtmlRss&amp;feed=rss&amp;hideliu=&amp;hidepatrolled=&amp;hidebots=&amp;hide</fs:srcfeed><fs:itemid>feedsky/LinuxWiki/~8853273/607311287/6714313</fs:itemid></item><item><title>Grub2配置</title><link>http://linux-wiki.cn/wiki/Grub2%E9%85%8D%E7%BD%AE</link><description>&lt;p&gt;Chenxing: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;p&gt;&lt;a href=&quot;/wiki/Category:Grub&quot; title=&quot;Category:Grub&quot;&gt;GRUB&lt;/a&gt;，全称the GRand Unified Bootloader，是常用的引导程序，一般负责在开机时装载操作系统内核。GRUB 2是最近流行起来的GRUB新版本。
&lt;/p&gt;
&lt;table id=&quot;toc&quot; class=&quot;toc&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;div id=&quot;toctitle&quot;&gt;&lt;h2&gt;目录&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;toclevel-1 tocsection-1&quot;&gt;&lt;a href=&quot;#Grub_2.E4.B8.8EGrub&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;Grub 2与Grub&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-2&quot;&gt;&lt;a href=&quot;#.E5.AE.89.E8.A3.85&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;安装&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-3&quot;&gt;&lt;a href=&quot;#.E5.85.A8.E5.B1.80.E9.85.8D.E7.BD.AE&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;全局配置&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li class=&quot;toclevel-2 tocsection-4&quot;&gt;&lt;a href=&quot;#.E9.BB.98.E8.AE.A4.E5.90.AF.E5.8A.A8.E9.A1.B9&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3.1&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;默认启动项&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-5&quot;&gt;&lt;a href=&quot;#.E8.87.AA.E5.AE.9A.E4.B9.89.E8.8F.9C.E5.8D.95.E9.A1.B9&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;自定义菜单项&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-6&quot;&gt;&lt;a href=&quot;#.E7.BE.8E.E5.8C.96&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;5&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;美化&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-7&quot;&gt;&lt;a href=&quot;#.E5.8F.82.E8.80.83.E8.B5.84.E6.96.99&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;6&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;参考资料&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;Grub_2.E4.B8.8EGrub&quot;&gt;Grub 2与Grub&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Grub 2虽在名称上是Grub的升级版，但其代码实际上被完全重写了。&lt;sup id=&quot;cite_ref-0&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-0&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;，对于最终用户来讲，Grub 2带来了若干改进，如：
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; 自动搜索可用的内核和硬盘中的可用系统。
&lt;/li&gt;&lt;li&gt; 可支持NTFS等更多分区格式。
&lt;/li&gt;&lt;li&gt; 可启动Windows、Mac OS X等多种系统。
&lt;/li&gt;&lt;li&gt; 更人性化的设计，如键入命令时TAB补全很强大，输出很长时会分页显示等。
&lt;/li&gt;&lt;li&gt; 界面的定制更加灵活
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;从配置的角度，Grub 2主要有以下几点不同&lt;sup id=&quot;cite_ref-ubuwiki_1-0&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-ubuwiki-1&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;
&lt;sup id=&quot;cite_ref-2&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-2&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;：
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt; &lt;i&gt;/boot/grub/menu.lst&lt;/i&gt;被&lt;i&gt;/boot/grub/grub.cfg&lt;/i&gt;所取代
&lt;/li&gt;&lt;li&gt; 主配置文件&lt;i&gt;grub.cfg&lt;/i&gt;不能直接被用户修改，而是由系统自动生成
&lt;/li&gt;&lt;li&gt; 每当安装内核、更新Grub 2或用户主动运行&lt;i&gt;update-grub&lt;/i&gt;后，Grub 2会根据用户配置文件重新生成&lt;i&gt;grub.cfg&lt;/i&gt;。
&lt;/li&gt;&lt;li&gt; 可编辑的Grub 2配置文件主要包括&lt;i&gt;/etc/default/grub&lt;/i&gt;、和&lt;i&gt;/etc/grub.d/&lt;/i&gt;下的各文件。
&lt;/li&gt;&lt;li&gt; 分区命名方式有变，第一个分区现在是1而不是0，但第一个设备仍然以0开始计数，如&lt;tt&gt;(hd0, 1)&lt;/tt&gt;表示第一块硬盘上的第一个分区。
&lt;/li&gt;&lt;/ul&gt;
&lt;div style=&quot;margin:10px 20px 0 20px; border: 1px solid #bbddee; padding: 4px 4px 4px 4px; background-color:#f0f0fc;&quot;&gt;&lt;div class=&quot;floatleft&quot;&gt;&lt;a href=&quot;/wiki/File:Note.gif&quot; class=&quot;image&quot;&gt;&lt;img alt=&quot;Note.gif&quot; src=&quot;/images/6/62/Note.gif&quot; width=&quot;18&quot; height=&quot;18&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font color=&quot;#0000aa&quot;&gt;&lt;b&gt;注意：&lt;/b&gt;&lt;/font&gt;
&lt;br /&gt;使用Grub 2时，不要手动编辑&lt;i&gt;/boot/grub/grub.cfg&lt;/i&gt;！否则所做的修改在Grub更新或安装内核等情况下消失。有些文档建议先赋予&lt;i&gt;grub.cfg&lt;/i&gt;写权限再编辑之，这是非常不可取的……&lt;/div&gt;
&lt;div style=&quot;margin:10px 20px 0 20px; border: 1px solid #eebbdd; padding: 4px 4px 4px 4px; background-color:#fcf0f0;&quot;&gt;&lt;div class=&quot;floatleft&quot;&gt;&lt;a href=&quot;/wiki/File:Hint.gif&quot; class=&quot;image&quot;&gt;&lt;img alt=&quot;Hint.gif&quot; src=&quot;/images/7/7d/Hint.gif&quot; width=&quot;24&quot; height=&quot;22&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font color=&quot;#0000aa&quot;&gt;&lt;b&gt;提示：&lt;/b&gt;&lt;/font&gt;
&lt;br /&gt;修改了配置文件后，一定要运行&lt;i&gt;update-grub&lt;/i&gt;才能使新的配置生效。&lt;/div&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E5.AE.89.E8.A3.85&quot;&gt;安装&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;多数系统已经预装了Grub 2。相比于为系统安装Grub 2软件而言，更常见的任务是将在Grub 2安装到硬盘引导区。（如安装Windows后Grub 2会被Windows清出硬盘MBR。。。）
&lt;/p&gt;&lt;p&gt;Grub 2的工具多是&lt;tt&gt;grub-&lt;/tt&gt;开头的一系列命令，而将其安装到硬盘上的命令则是&lt;tt&gt;grub-install&lt;/tt&gt;：
&lt;/p&gt;
&lt;pre&gt;grub-install --root-directory=/ /dev/sda
&lt;/pre&gt;
&lt;p&gt;其中&lt;i&gt;root-directory&lt;/i&gt;用于指明存放&lt;i&gt;/boot&lt;/i&gt;文件的分区。在用恢复盘启动时，应先挂载装有Grub 2的系统，再相应地执行grub-install指令。
&lt;/p&gt;&lt;p&gt;&lt;tt&gt;/dev/sda&lt;/tt&gt;表示安装到sda的MBR。Grub 2亦可安装到分区的引导扇区，但不建议这么做（不小心的话会破坏某些类型的分区，如&lt;a href=&quot;/wiki/%E4%BF%AE%E5%A4%8D%E8%A2%ABgrub%E8%A6%86%E7%9B%96%E7%9A%84ntfs%E5%88%86%E5%8C%BA%E5%BC%95%E5%AF%BC%E6%89%87%E5%8C%BA&quot; title=&quot;修复被grub覆盖的ntfs分区引导扇区&quot;&gt;修复被grub覆盖的ntfs分区引导扇区&lt;/a&gt;是挺麻烦的）。
&lt;/p&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E5.85.A8.E5.B1.80.E9.85.8D.E7.BD.AE&quot;&gt;全局配置&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;影响Grub 2行为的主要配置存放在&lt;i&gt;/etc/default/grub&lt;/i&gt;中，可实现修改启动项、更改分辨率、禁用操作系统探测器等。由于配置文件本身可读性很好，仅介绍几个不大直观的项。完整的参数介绍可以参见&lt;sup id=&quot;cite_ref-ubuwiki_1-1&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-ubuwiki-1&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;或&lt;a href=&quot;http://code.google.com/p/burg/wiki/ConfigurationVariables&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;BURG的文档&lt;/a&gt;。
&lt;/p&gt;
&lt;h3&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E9.BB.98.E8.AE.A4.E5.90.AF.E5.8A.A8.E9.A1.B9&quot;&gt;默认启动项&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;默认启动项由&lt;i&gt;/etc/default/grub&lt;/i&gt;中的&lt;tt&gt;GRUB_DEFAULT&lt;/tt&gt;设置，其取值有如下几种：
&lt;/p&gt;
&lt;dl&gt;&lt;dt&gt;数字 (如GRUB_DEFAULT=0)&amp;#160;&lt;/dt&gt;&lt;dd&gt; 从0开始的菜单项编号，如果有子菜单，则形如 &lt;tt&gt;2&amp;gt;0&lt;/tt&gt;。
&lt;/dd&gt;&lt;dt&gt;saved&amp;#160;&lt;/dt&gt;&lt;dd&gt; 默认启动最后一次选中的启动项。使用此选项时，使用&lt;b&gt;grub-set-default&lt;/b&gt;可设置默认启动项，&lt;b&gt;grub-reboot&lt;/b&gt;可设置仅影响下次启动时的默认启动项。
&lt;/dd&gt;&lt;dt&gt;启动项名称&lt;/dt&gt;&lt;dd&gt; 由于启动项的序号可能是动态改变的，使用启动项的名称设置默认值有时更稳妥，如&lt;tt&gt;GRUB_DEFAULT=&quot;Ubuntu, Linux 2.6.31-9-generic&quot;&lt;/tt&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;p&gt;更新配置后，不要忘了运行&lt;tt&gt;update-grub&lt;/tt&gt;命令。
&lt;/p&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E8.87.AA.E5.AE.9A.E4.B9.89.E8.8F.9C.E5.8D.95.E9.A1.B9&quot;&gt;自定义菜单项&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;margin:10px 20px 0 20px; border: 1px solid #eebbdd; padding: 4px 4px 4px 4px; background-color:#fcf0f0;&quot;&gt;&lt;div class=&quot;floatleft&quot;&gt;&lt;a href=&quot;/wiki/File:Hint.gif&quot; class=&quot;image&quot;&gt;&lt;img alt=&quot;Hint.gif&quot; src=&quot;/images/7/7d/Hint.gif&quot; width=&quot;24&quot; height=&quot;22&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;font color=&quot;#0000aa&quot;&gt;&lt;b&gt;提示：&lt;/b&gt;&lt;/font&gt;
&lt;br /&gt;有些发行版（如Archlinux）由于未安装&lt;b&gt;os-prober&lt;/b&gt;，不能自动探测硬盘上的其它操作系统，装上&lt;b&gt;os-prober&lt;/b&gt;软件即可解决此问题。&lt;sup id=&quot;cite_ref-archwiki_3-0&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-archwiki-3&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/div&gt;
&lt;p&gt;菜单项一般是由操作系统探测器（os-prober）自动生成的，但在某些情况下（如&lt;a href=&quot;/wiki/Category:%E7%A1%AC%E7%9B%98%E5%AE%89%E8%A3%85&quot; title=&quot;Category:硬盘安装&quot;&gt;硬盘安装&lt;/a&gt;时）也需要手动修改自定义菜单项。
&lt;/p&gt;&lt;p&gt;自定义菜单项一般存放在&lt;i&gt;/etc/grub.d/40_custom&lt;/i&gt;文件中。
&lt;/p&gt;&lt;p&gt;一个简单的菜单项定义如下&lt;sup id=&quot;cite_ref-ubuwiki_1-2&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-ubuwiki-1&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;：
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;bash source-bash&quot;&gt;menuentry &lt;span class=&quot;st0&quot;&gt;&amp;quot;System Rescue CD&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;root&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;hd0,&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  linux &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sysrcd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rescuecd &lt;span class=&quot;re2&quot;&gt;subdir&lt;/span&gt;=sysrcd &lt;span class=&quot;re2&quot;&gt;setkmap&lt;/span&gt;=us
  initrd &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sysrcd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;initram.igz
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;其中，第一行&lt;tt&gt;set root=&lt;/tt&gt;对应以前Grub的&lt;tt&gt;root&lt;/tt&gt;命令；&lt;tt&gt;linux&lt;/tt&gt;对应以前的&lt;tt&gt;kernel&lt;/tt&gt;命令；&lt;tt&gt;initrd&lt;/tt&gt;命令功能与Grub 1相同。
&lt;/p&gt;&lt;p&gt;又如&lt;sup id=&quot;cite_ref-archwiki_3-1&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-archwiki-3&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;：
&lt;/p&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;bash source-bash&quot;&gt;menuentry &lt;span class=&quot;st0&quot;&gt;&amp;quot;Windows XP&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;root&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;hd0,&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    chainloader &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;hd0,&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;此处&lt;tt&gt;set root=&lt;/tt&gt;对应老Grub的&lt;tt&gt;rootnoverify&lt;/tt&gt;。
&lt;/p&gt;&lt;p&gt;请再次注意，Grub 2中分区号从1开始，但磁盘号仍然是从0开始的。。（详情请见&lt;a href=&quot;/wiki/Grub%E7%A3%81%E7%9B%98%E5%88%86%E5%8C%BA%E8%A1%A8%E7%A4%BA%E6%96%B9%E6%B3%95&quot; title=&quot;Grub磁盘分区表示方法&quot;&gt;Grub磁盘分区表示方法&lt;/a&gt;）
&lt;/p&gt;&lt;p&gt;更多的例子，可以参考&lt;i&gt;/boot/grub/grub.cfg&lt;/i&gt;中自动生成的代码。
&lt;/p&gt;&lt;p&gt;更新配置后，不要忘了运行&lt;tt&gt;update-grub&lt;/tt&gt;命令。
&lt;/p&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E7.BE.8E.E5.8C.96&quot;&gt;美化&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;thumb tright&quot;&gt;&lt;div class=&quot;thumbinner&quot; style=&quot;width:402px;&quot;&gt;&lt;a href=&quot;/wiki/File:BURG_Radiance.png&quot; class=&quot;image&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;/images/thumb/b/b5/BURG_Radiance.png/400px-BURG_Radiance.png&quot; width=&quot;400&quot; height=&quot;300&quot; class=&quot;thumbimage&quot; /&gt;&lt;/a&gt;  &lt;div class=&quot;thumbcaption&quot;&gt;&lt;div class=&quot;magnify&quot;&gt;&lt;a href=&quot;/wiki/File:BURG_Radiance.png&quot; class=&quot;internal&quot; title=&quot;放大&quot;&gt;&lt;img src=&quot;/skins/common/images/magnify-clip.png&quot; width=&quot;15&quot; height=&quot;11&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;有多主题可选的BURG截图&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Grub 2支持修改背景、前景颜色或使用图片做背景，但一般来讲配色是一个痛苦的过程……如有美化需求，建议参考文章&lt;a href=&quot;/wiki/%E7%94%A8BURG%E7%BE%8E%E5%8C%96GRUB&quot; title=&quot;用BURG美化GRUB&quot;&gt;用BURG美化GRUB&lt;/a&gt;。 
&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E5.8F.82.E8.80.83.E8.B5.84.E6.96.99&quot;&gt;参考资料&lt;/span&gt;&lt;/h2&gt;
&lt;ol class=&quot;references&quot;&gt;&lt;li id=&quot;cite_note-0&quot;&gt;&lt;a href=&quot;#cite_ref-0&quot;&gt;↑&lt;/a&gt; &lt;a href=&quot;http://www.gnu.org/software/grub/manual/grub.html&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;GNU GRUB Manual 1.99&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;cite_note-ubuwiki-1&quot;&gt;↑ &lt;sup&gt;&lt;a href=&quot;#cite_ref-ubuwiki_1-0&quot;&gt;2.0&lt;/a&gt;&lt;/sup&gt; &lt;sup&gt;&lt;a href=&quot;#cite_ref-ubuwiki_1-1&quot;&gt;2.1&lt;/a&gt;&lt;/sup&gt; &lt;sup&gt;&lt;a href=&quot;#cite_ref-ubuwiki_1-2&quot;&gt;2.2&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://help.ubuntu.com/community/Grub2&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Ubuntu Community Documentation: Grub2&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;cite_note-2&quot;&gt;&lt;a href=&quot;#cite_ref-2&quot;&gt;↑&lt;/a&gt; &lt;a href=&quot;http://lesca.me/blog/2011/02/27/differences-between-grub-and-grub2/&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Lesca is thinking…：一、GRUB, GRUB2: 区别、比较&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;cite_note-archwiki-3&quot;&gt;↑ &lt;sup&gt;&lt;a href=&quot;#cite_ref-archwiki_3-0&quot;&gt;4.0&lt;/a&gt;&lt;/sup&gt; &lt;sup&gt;&lt;a href=&quot;#cite_ref-archwiki_3-1&quot;&gt;4.1&lt;/a&gt;&lt;/sup&gt; &lt;a href=&quot;https://wiki.archlinux.org/index.php/GRUB2&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;ArchWiki: GRUB2&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/607311288/LinuxWiki/feedsky/s.gif?r=http://linux-wiki.cn/wiki/Grub2%E9%85%8D%E7%BD%AE&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Thu, 26 Jan 2012 17:49:21 +0800</pubDate><author>Chenxing</author><comments>http://linux-wiki.cn/wiki/Talk:Grub2%E9%85%8D%E7%BD%AE</comments><guid isPermaLink="false">http://linux-wiki.cn/wiki/Grub2%E9%85%8D%E7%BD%AE</guid><dc:creator>Chenxing</dc:creator><fs:srclink>http://linux-wiki.cn/wiki/Grub2%E9%85%8D%E7%BD%AE</fs:srclink><fs:srcfeed>http://linux-wiki.cn/index.php?title=Special:HtmlRss&amp;feed=rss&amp;hideliu=&amp;hidepatrolled=&amp;hidebots=&amp;hide</fs:srcfeed><fs:itemid>feedsky/LinuxWiki/~8853273/607311288/6714313</fs:itemid></item><item><title>模拟低速网络</title><link>http://linux-wiki.cn/wiki/%E6%A8%A1%E6%8B%9F%E4%BD%8E%E9%80%9F%E7%BD%91%E7%BB%9C</link><description>&lt;p&gt;Chenxing: 以内容“设计网站或网络应用程序时，人们常常想知道在低速网络下程序的表现。比如有些网页设计者会关心网站在5Kb/s的速度下载入情...”创建新页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;p&gt;设计网站或网络应用程序时，人们常常想知道在低速网络下程序的表现。比如有些网页设计者会关心网站在5Kb/s的速度下载入情况是怎样的等等。
&lt;/p&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E6.96.B9.E6.B3.95&quot;&gt;方法&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Linux中实现此过程非常简单，只需使用一款叫做&lt;a href=&quot;http://iprelay.klik.atekon.de/&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;iprelay&lt;/a&gt;（旧称ip_relay）的工具&lt;sup id=&quot;cite_ref-0&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-0&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;。该工具实际上是一个Perl脚本，可以把本地或远程的某个端口映射到本地的另一个端口，并限制流速。
&lt;/p&gt;&lt;p&gt;程序的参数也很简单，如在Archlinux中：
&lt;/p&gt;
&lt;pre&gt;/usr/bin/ip_relay.pl [ [-d] [-b n] local_port:remote_host:remote_port]
&lt;/pre&gt;
&lt;dl&gt;&lt;dt&gt;local_port:remote_host:remote_port&lt;/dt&gt;&lt;dd&gt;即将remote_host:remote_port映射到localhost:local_port
&lt;/dd&gt;&lt;dt&gt;-b n&lt;/dt&gt;&lt;dd&gt;即限制最大速度为n字节每秒
&lt;/dd&gt;&lt;dt&gt;-d&lt;/dt&gt;&lt;dd&gt;让iprelay在后台执行。
&lt;/dd&gt;&lt;/dl&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E7.A4.BA.E4.BE.8B&quot;&gt;示例&lt;/span&gt;&lt;/h2&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;bash source-bash&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ip_relay.pl &lt;span class=&quot;re5&quot;&gt;-b&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;50000&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8081&lt;/span&gt;:localhost:&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;上例将 localhost:80 映射到 localhost:8081，如果有本地Web服务器在运行，用浏览器访问 &lt;a href=&quot;http://localhost:8081&quot; class=&quot;external free&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://localhost:8081&lt;/a&gt; 即可感受5kb/s慢速网络的效果。
&lt;/p&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E5.8F.82.E8.80.83.E8.B5.84.E6.96.99&quot;&gt;参考资料&lt;/span&gt;&lt;/h2&gt;
&lt;ol class=&quot;references&quot;&gt;&lt;li id=&quot;cite_note-0&quot;&gt;&lt;a href=&quot;#cite_ref-0&quot;&gt;↑&lt;/a&gt; &lt;a href=&quot;http://iprelay.klik.atekon.de/&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;iprelay官方网站&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/607311289/LinuxWiki/feedsky/s.gif?r=http://linux-wiki.cn/wiki/%E6%A8%A1%E6%8B%9F%E4%BD%8E%E9%80%9F%E7%BD%91%E7%BB%9C&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Tue, 22 Nov 2011 13:38:04 +0800</pubDate><author>Chenxing</author><comments>http://linux-wiki.cn/wiki/Talk:%E6%A8%A1%E6%8B%9F%E4%BD%8E%E9%80%9F%E7%BD%91%E7%BB%9C</comments><guid isPermaLink="false">http://linux-wiki.cn/wiki/%E6%A8%A1%E6%8B%9F%E4%BD%8E%E9%80%9F%E7%BD%91%E7%BB%9C</guid><dc:creator>Chenxing</dc:creator><fs:srclink>http://linux-wiki.cn/wiki/%E6%A8%A1%E6%8B%9F%E4%BD%8E%E9%80%9F%E7%BD%91%E7%BB%9C</fs:srclink><fs:srcfeed>http://linux-wiki.cn/index.php?title=Special:HtmlRss&amp;feed=rss&amp;hideliu=&amp;hidepatrolled=&amp;hidebots=&amp;hide</fs:srcfeed><fs:itemid>feedsky/LinuxWiki/~8853273/607311289/6714313</fs:itemid></item><item><title>用git在svn代码库上开发</title><link>http://linux-wiki.cn/wiki/%E7%94%A8git%E5%9C%A8svn%E4%BB%A3%E7%A0%81%E5%BA%93%E4%B8%8A%E5%BC%80%E5%8F%91</link><description>&lt;p&gt;Chenxing: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;p&gt;&lt;a href=&quot;/index.php?title=Git&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Git（尚未撰写）&quot;&gt;git&lt;/a&gt;在功能上比&lt;a href=&quot;/index.php?title=Svn&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Svn（尚未撰写）&quot;&gt;svn&lt;/a&gt;强大不少，但目前很多版本库仍在使用svn。得益于git-svn，我们可以把远程的svn代码库复制到本地，从而实在在本地使用git开发，并通过svn与远程代码库交互。
&lt;/p&gt;
&lt;table id=&quot;toc&quot; class=&quot;toc&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;div id=&quot;toctitle&quot;&gt;&lt;h2&gt;目录&lt;/h2&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;toclevel-1 tocsection-1&quot;&gt;&lt;a href=&quot;#.E5.88.9D.E5.A7.8B.E5.8C.96.E4.BB.A3.E7.A0.81.E5.BA.93&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;初始化代码库&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-2&quot;&gt;&lt;a href=&quot;#.E8.8E.B7.E5.8F.96.E6.9C.80.E6.96.B0.E4.BB.A3.E7.A0.81&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;获取最新代码&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-3&quot;&gt;&lt;a href=&quot;#.E5.BC.80.E5.8F.91&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;开发&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-4&quot;&gt;&lt;a href=&quot;#.E6.8F.90.E4.BA.A4.E4.BB.A3.E7.A0.81&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;提交代码&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;toclevel-1 tocsection-5&quot;&gt;&lt;a href=&quot;#.E5.8F.82.E8.80.83&quot;&gt;&lt;span class=&quot;tocnumber&quot;&gt;5&lt;/span&gt; &lt;span class=&quot;toctext&quot;&gt;参考&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E5.88.9D.E5.A7.8B.E5.8C.96.E4.BB.A3.E7.A0.81.E5.BA.93&quot;&gt;初始化代码库&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;最简单的办法是将整个SVN代码库同步到本地（包括所有历史记录，可能会非常慢）：
&lt;/p&gt;
&lt;pre&gt;git svn clone SVN代码库路径 -s
&lt;/pre&gt;
&lt;p&gt;如果想只同步最近的更新，可以指定-r参数，如：
&lt;/p&gt;
&lt;pre&gt;git svn clone SVN代码库路径 -r100:HEAD -s
&lt;/pre&gt;
&lt;p&gt;会从相应的revision（此例是r100）同步到最新版本(HEAD)。&lt;sup id=&quot;cite_ref-0&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-0&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;
&lt;/p&gt;&lt;p&gt;上面的&lt;b&gt;-s&lt;/b&gt;参数表示只同步trunk，对于某些非标准的代码库，不要加&lt;b&gt;-s&lt;/b&gt;。
&lt;/p&gt;&lt;p&gt;如果是Google Code的SVN代码库，可使用如此方法&lt;sup id=&quot;cite_ref-1&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-1&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;：
&lt;/p&gt;
&lt;pre&gt;git svn clone --username your-name -s &lt;a href=&quot;https://your-project.googlecode.com/svn&quot; class=&quot;external free&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://your-project.googlecode.com/svn&lt;/a&gt;
&lt;/pre&gt;
&lt;p&gt;同步后建议调用git gc (garbage collection)清理一下垃圾：
&lt;/p&gt;
&lt;pre&gt;git gc
&lt;/pre&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E8.8E.B7.E5.8F.96.E6.9C.80.E6.96.B0.E4.BB.A3.E7.A0.81&quot;&gt;获取最新代码&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;如果想获取代码库的最新代码（对应svn update），只需：
&lt;/p&gt;
&lt;pre&gt;git svn rebase
&lt;/pre&gt;
&lt;p&gt;如果有冲突，处理方法与git版本库类似。
&lt;/p&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E5.BC.80.E5.8F.91&quot;&gt;开发&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;开发时就如同一个普通的git，可以使用git的各种feature，如本地commit，方便地创建多个branch等。具体可参见相关资料&lt;sup id=&quot;cite_ref-2&quot; class=&quot;reference&quot;&gt;&lt;a href=&quot;#cite_note-2&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;
&lt;/p&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E6.8F.90.E4.BA.A4.E4.BB.A3.E7.A0.81&quot;&gt;提交代码&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;将代码提交到svn，就只能保持版本的线性性了，此时建议先更新本地代码库：
&lt;/p&gt;
&lt;pre&gt;git fetch
git svn rebase
&lt;/pre&gt;
&lt;p&gt;同时也建议整理一下本地的commit
&lt;/p&gt;
&lt;pre&gt;git rebase -i
&lt;/pre&gt;
&lt;p&gt;都准备好后，就可以提交了：
&lt;/p&gt;
&lt;pre&gt;git svn dcommit
&lt;/pre&gt;
&lt;h2&gt; &lt;span class=&quot;mw-headline&quot; id=&quot;.E5.8F.82.E8.80.83&quot;&gt;参考&lt;/span&gt;&lt;/h2&gt;
&lt;ol class=&quot;references&quot;&gt;&lt;li id=&quot;cite_note-0&quot;&gt;&lt;a href=&quot;#cite_ref-0&quot;&gt;↑&lt;/a&gt; &lt;a href=&quot;http://stackoverflow.com/questions/747075/how-to-git-svn-clone-the-last-n-revisions-from-a-subversion-repository&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;(StackOverflow) How to git-svn clone the last n revisions from a Subversion repository?&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;cite_note-1&quot;&gt;&lt;a href=&quot;#cite_ref-1&quot;&gt;↑&lt;/a&gt; &lt;a href=&quot;http://google-opensource.blogspot.com/2008/05/develop-with-git-on-google-code-project.html&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Develop with Git on a Google Code Project&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;cite_note-2&quot;&gt;&lt;a href=&quot;#cite_ref-2&quot;&gt;↑&lt;/a&gt; &lt;a href=&quot;http://www.robinlu.com/blog/archives/194&quot; class=&quot;external text&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;如何在svn系统中使用git&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/607311290/LinuxWiki/feedsky/s.gif?r=http://linux-wiki.cn/wiki/%E7%94%A8git%E5%9C%A8svn%E4%BB%A3%E7%A0%81%E5%BA%93%E4%B8%8A%E5%BC%80%E5%8F%91&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><pubDate>Sun, 20 Nov 2011 11:38:13 +0800</pubDate><author>Chenxing</author><comments>http://linux-wiki.cn/wiki/Talk:%E7%94%A8git%E5%9C%A8svn%E4%BB%A3%E7%A0%81%E5%BA%93%E4%B8%8A%E5%BC%80%E5%8F%91</comments><guid isPermaLink="false">http://linux-wiki.cn/wiki/%E7%94%A8git%E5%9C%A8svn%E4%BB%A3%E7%A0%81%E5%BA%93%E4%B8%8A%E5%BC%80%E5%8F%91</guid><dc:creator>Chenxing</dc:creator><fs:srclink>http://linux-wiki.cn/wiki/%E7%94%A8git%E5%9C%A8svn%E4%BB%A3%E7%A0%81%E5%BA%93%E4%B8%8A%E5%BC%80%E5%8F%91</fs:srclink><fs:srcfeed>http://linux-wiki.cn/index.php?title=Special:HtmlRss&amp;feed=rss&amp;hideliu=&amp;hidepatrolled=&amp;hidebots=&amp;hide</fs:srcfeed><fs:itemid>feedsky/LinuxWiki/~8853273/607311290/6714313</fs:itemid></item></channel></rss>
