@shellex说: RT : 广告之拉拉情缘,SISLEY为主

在U盘上安装Linux

linux上回受Shell.E.Xu同学的盅惑,决定往U盘上装个Linux,以便不时之需。考虑到维护的方便性,还是使用Debian的好。于是就去debian.org搞了个base system的iso

最初猜想着也就直接复制debian / 到U盘就行了,但是看到xiooli同学的joolix os是用slax的那套脚本搞的,于是又去看slax。

最后决定直接请教Shell.E.Xu同学

Shell.E.Xu的说话风格颇像北斗星君同学…之间还被他训斥了几句,被鄙视了,5555 :(

好了,下面是无废话安装Linux到U盘的过程,你需要根据自己的情况修改:

  1. 安装VirtualBox,挂载debian iso,安装debian (理论上可以直接安装到Udisk,因为我之前有debian在Box里面,所以就使用现成的debian了)
  2. 把debian折腾好。
  3. 将你的U-disk格式化成ext2。
  4. 将U-disk挂载到VirtualBox中的Debian,比如我挂载到/media/sneak
  5. 除了/sys, /media, /proc, /tmp, /dev,将debian的其他目录复制/media/sneak下,使用cp -a
  6. mkdir /media/sneak/[proc, sys, media, tmp, dev],建立没复制的目录。
  7. chmod +t /media/sneak/tmp

由于我的debian下缺几个程序,又懒得装,所以我下面的操作是在我的gentoo Host下完成的:

  1. 为了方便,使用e2label /dev/sdb1 sneak,把我的U盘加个Label,叫sneak
  2. 挂载到/media/sneak
  3. 修改文件 vim /media/sneak/boot/grub/device.map,
    (hd0)    /dev/sdb
    其中sdb就是在我的系统中,U盘的设备名字
  4. 执行:
    # mount -t proc none /media/sneak/proc/
    # mount -o bind /dev /media/sneak/dev/
    # chroot /media/sneak/

    注意:下面的操作都在chroot里!平时需要维护U-disk的Linux时我也在chroot下进行de 。

  5. 安装grub到Udisk,执行:
    # /usr/sbin/grub-install /dev/sdb
    根据提示判断是否将grub安装成功,如果不成功,根据提示解决
  6. 修改/etc/fstab,比如我的:
    LABEL=sneak       /               ext2    defaults        0       0
    /dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
    proc            /proc           proc    defaults        0       0

    可以看到第一步中设置Label的作用在此,否则回头插到别的机器鬼才知道会变成第几个sd/hd呢,当然了,也可以使用blkid -s UUID,随便你

  7. 修改/boot/grub/menu.lst,下面是我的部分内容:
    title        Debian GNU/Linux, kernel 2.6.26-1-686
    root        (hd0,0)
    kernel        /boot/vmlinuz-2.6.26-1-686 root=LABEL=sneak
    initrd        /boot/initrd.img-2.6.26-1-686
  8. 好了,现在umount,然后可以在真机上测试一下了(不知道怎么在VBox里面测试)

如果不出意外的话,就进入U盘中的debian了。

如果出意外的话—比如我—就遇到了两种意外:

  1. 进入了grub,但是无法加载内核:检测你的grub menu.list,root那儿有没有错
  2. 进入了grub,加载了内核,但是最后到了busybox:检查你的grub menu.list,kernel的root属性有没有错,再检查你的/etc/fstab有没有错。

如果连grub都没进去,检查BIOS设置有没有错。

感想:用惯了gentoo,现在Udisk里的debian安装软件怎一个简单了得,apt真是新手福音啊~~
不过,我还是喜欢gentoo,真是变态。

———[Update 12th April 2009]——————————————————-

可以用VirtualBox测试。只要使用建立一个到USB设备的raw disk,然后当成硬盘间接启动即可(推荐使用):

# VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/VDI/UsbDisk.vmdk -rawdisk /dev/sdb -register

然后选择UsbDisk.vmdk作为第一磁盘控制器即可。

  1. On April 12, 2009 at 10:12 am
    PT :

    呵呵,不错,只是“chmod +t /media/sneak/tmp“,好像没有+t这个参数……

    Notify
  2. On April 12, 2009 at 1:06 pm

    set user or group ID on execution (s), restricted deletion flag or sticky bit (t).
    RESTRICTED DELETION FLAG OR STICKY BIT
    The restricted deletion flag or sticky bit is a single bit, whose interpretation depends on the file type. For directories, it prevents unprivileged users from removing or renaming a file in the directory unless they own the file or the directory; this is called the restricted deletion flag for the directory, and is commonly found on world-writable directories like /tmp. For regular files on some older systems, the bit saves the program’s text image on the swap device so it will load more quickly when run; this is called the sticky bit.

    Notify
  3. On April 12, 2009 at 1:08 pm

    我在kvm里面测试的,命令是kvm -hda /dev/sdb -m 256 -localtime -net nic -net user。完全不用chroot,还影响主系统。

    Notify
  4. On April 12, 2009 at 2:03 pm

    生命在于折腾

    Notify
  5. On April 12, 2009 at 2:28 pm
    xiooli :

    妙阿。

    Notify
  6. On April 13, 2009 at 5:32 pm
    Alex :

    Good
    I use Ubuntu on my SDHC card to install Ubuntu and surf on the inet!

    Notify
  7. On April 14, 2009 at 12:00 am

    每次见到有人做了U-disk版本的linux我都想直接COPY一个

    Notify
  8. On April 14, 2009 at 9:17 am

    不错,很YD。
    有时间我也整一个。

    Notify
  9. On April 14, 2009 at 11:05 am

    @Shell.E.Xu,
    恩,我在VirtualBox里面也搞定了。

    Notify
  10. On April 14, 2009 at 11:05 am

    @abettor,
    很快的。

    Notify
  11. On April 14, 2009 at 11:06 am

    @HicroKee,
    那Hicro Kee MM想不想要我的捏….???

    Notify
  12. On April 14, 2009 at 11:06 am

    @xiooli,
    嘻嘻。比slax爽哦

    Notify
  13. On April 14, 2009 at 11:07 am

    @Dreamseeker,
    不折腾。很快的

    Notify
  14. On April 19, 2009 at 12:58 am
    risent :

    你的这个U-disk linux总共是多大?

    Notify
  15. On April 19, 2009 at 9:52 am

    @risent,
    目前的大小是1.3 G

    Notify
  16. On April 19, 2009 at 11:56 am
    risent :

    系统裁减中。。。。。

    Notify
  17. On April 19, 2009 at 6:20 pm

    @risent,
    在我的MM的U System上留言试试

    Notify

Trackbacks

  1. Fresh From Twitter today | Tweets archive
  2. 打算在U盘上安装个 EeeBuntu 玩玩 - 胡作非为

Leave a Reply