Quantcast
Channel: Hardware – Benjr.tw
Viewing all articles
Browse latest Browse all 145

Ubuntu Live CD root > 4G

$
0
0

Ubuntu 的 Desktop 版本就是 LiveCD ,這 Live CD 可以裝在 USB Key 隨身碟上,但這 Ubuntu Live CD USB flash drive 有個問題,就是 root 沒有辦法大於 > 4G ,這是為什麼呢!!

因為 Ubuntu Desktop 做成 Ubuntu Live CD USB flash drive 時,會將磁區分割成為 vfat ,而 root 檔案會寫成一個 loop file ( casper-rw) ,但 vfat 的檔案上限就是 4G ,如果要讓 root 大於 4g 必須用其他方式來做.

參考了下面幾個網站的說明.
http://ubuntu-usb-large-persistent-storage.blogspot.tw/
http://www.pendrivelinux.com/create-a-larger-than-4gb-casper-partition/

步驟如下:

  1. 刪除 casper-rw
  2. 縮小 Ubuntu Live CD USB flash drive vfat 磁區大小(預設會佔用全部的 USB flash drive 空間)
  3. 新增一 ext2 (3)(4) 磁區,標籤並成為 casper-rw (系統會把這磁區當作 root)

第一步先做好你的 Ubuntu Live CD USB flash drive ,可以透過 Universal USB Installer (Windows) 或是 Startup Disk Creator (Linux) ,方式請參考 Ubuntu Live CD on USB flash drive – http://benjr.tw/1550

  1. 刪除 casper-rw
    先找一台 Linux 系統或是 windows 都可以,把這 Ubuntu Live CD USB flash drive 內的 casper.rw (root loop file 檔案) 刪除 (這檔案不見得存在)
    [root@localhost Desktop]# mount
    /dev/mapper/VolGroup-lv_root on / type ext4 (rw)
    proc on /proc type proc (rw)
    sysfs on /sys type sysfs (rw)
    devpts on /dev/pts type devpts (rw,gid=5,mode=620)
    tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
    /dev/sda1 on /boot type ext4 (rw)
    /dev/mapper/VolGroup-lv_home on /home type ext4 (rw)
    none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
    /tmp on /tmp type none (rw,bind)
    /var/tmp on /var/tmp type none (rw,bind)
    /home on /home type none (rw,bind)
    none on /sys/kernel/config type configfs (rw)
    gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)
    /dev/sdb1 on /media/77D1-8400 type vfat (rw,nosuid,nodev,uhelper=udisks,uid=0,gid=0,shortname=mixed,dmask=0077,utf8=1,flush)
    
    [root@localhost Desktop]# rm /media/77D1-8400/casper.rw
    
  2. 小 Ubuntu Live CD USB flash drive vfat 磁區大小
    預設 Ubuntu Live CD USB flash drive 會佔用全部的 USB flash drive 空間,第一步先縮小 Ubuntu Live CD USB flash drive vfat 磁區大小,但這一步搞好久才試成功,這一步主要是透過 parted 的 resize (GParted 圖形介面) 來縮小 Ubuntu Live CD USB flash drive vfat 磁區,但不知道為什麼在 Ubuntu 14.04 (RHEL 7) 下面 resize 沒有辦法使用 (仔細一看說明,resize 將不再支援,建議用戶用 e2fsprogs 套件做放大縮小磁區 ),但在 RedHat (RHEL) 6.5 下使用就沒有問題.詳細文章請參考 放大縮小 Linux 磁區 http://benjr.tw/94843

    關於 parted 使用,請參考 http://benjr.tw/94833

    下面資料有點錯誤,修改中.

    RedHat RHEL 6.5

    [root@localhost Desktop]# df -h
    Filesystem                    Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root   50G  8.1G   39G  18% /
    tmpfs                         939M  224K  939M   1% /dev/shm
    /dev/sda1                     485M   41M  419M   9% /boot
    /dev/mapper/VolGroup-lv_home  222G  188M  211G   1% /home
    /dev/sdb1                      15G  5.8G  8.7G  41% /media/77D1-8400
    
    [root@localhost Desktop]# parted /dev/sdb
    GNU Parted 2.1
    Using /dev/sdb
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) print                                                            
    Model: ADATA USB Flash Drive (scsi)
    Disk /dev/sdb: 15.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    
    Number  Start   End     Size    Type     File system  Flags
     1      1049kB  15.5GB  15.5GB  primary  fat32
    
    (parted) resize 1 1049k 10G                                               
    WARNING: you are attempting to use parted to operate on (resize) a file system.
    parted's file system manipulation code is not as robust as what you'll find in
    dedicated, file-system-specific packages like e2fsprogs.  We recommend
    you use parted only to manipulate partition tables, whenever possible.
    Support for performing most operations on most types of file systems
    will be removed in an upcoming release.
    (parted) print                                                            
    Model: ADATA USB Flash Drive (scsi)
    Disk /dev/sdb: 15.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    
    Number  Start   End     Size    Type     File system  Flags
     1      1049kB  10.0GB  9999MB  primary  fat32
    
    (parted) q                                                                
    Information: You may need to update /etc/fstab.  
    

    Ubuntu 14.04

    root@ben:~# parted /dev/sdc
    GNU Parted 2.3
    Using /dev/sdc
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) print                                                            
    Model: ADATA USB Flash Drive (scsi)
    Disk /dev/sdc: 15.5GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    
    Number  Start   End     Size    Type     File system  Flags
     1      1049kB  15.5GB  15.5GB  primary  fat32
    
    (parted) resize 1 1049k 2048M                                             
    WARNING: you are attempting to use parted to operate on (resize) a file system.
    parted's file system manipulation code is not as robust as what you'll find in
    dedicated, file-system-specific packages like e2fsprogs.  We recommend
    you use parted only to manipulate partition tables, whenever possible.
    Support for performing most operations on most types of file systems
    will be removed in an upcoming release.
    parted: malloc.c:2372: sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) == 0)' failed.
    Aborted (core dumped)
    
  3. 新增一 ext2 (3)(4) 磁區,標籤並成為 casper-rw
    當 casper.rw (root loop file 檔案) 沒有的時候,系統會找 標籤為 casper-rw 當成 root,所以這一步需要新增一 ext2 (3)(4) 磁區,標籤並成為 casper-rw ,一樣可以透過 parted (GParted 圖形介面) 來做,完成後就可以從這一 Ubuntu Live CD USB flash drive 開機吧! 但系統會把這磁區當作 root 會花比較久的開機時間.
    ubuntu@ubuntu:~$ df -h
    Filesystem Size Used Avail Use% Mounted on
    /cow 13G 208M 12G 2% /
    udev 989M 4.0K 989M 1% /dev
    tmpfs 201M 1.2M 199M 1% /run
    /dev/sda1 1.9G 982M 924M 52% /cdrom
    /dev/loop0 939M 939M 0 100% /rofs
    none 4.0K 0 4.0K 0% /sys/fs/cgroup
    tmpfs 1001M 1.1M 1000M 1% /tmp
    none 5.0M 4.0K 5.0M 1% /run/lock
    none 1001M 80K 1000M 1% /run/shm
    none 100M 48K 100M 1% /run/user
    /dev/sda2 13G 208M 12G 2% /media/ubuntu/casper-rw
    /dev/sr1 1.2M 1.2M 0 100% /media/ubuntu/cdrom_install
    ubuntu@ubuntu:~$ mount
    /cow on / type overlayfs (rw)
    proc on /proc type proc (rw,noexec,nosuid,nodev)
    sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
    udev on /dev type devtmpfs (rw,mode=0755)
    devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
    tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
    /dev/sda1 on /cdrom type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
    /dev/loop0 on /rofs type squashfs (ro,noatime)
    none on /sys/fs/cgroup type tmpfs (rw)
    none on /sys/fs/fuse/connections type fusectl (rw)
    none on /sys/kernel/debug type debugfs (rw)
    none on /sys/kernel/security type securityfs (rw)
    tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
    none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
    none on /run/shm type tmpfs (rw,nosuid,nodev)
    none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
    none on /sys/fs/pstore type pstore (rw)
    systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
    gvfsd-fuse on /run/user/999/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=ubuntu)
    /dev/sda2 on /media/ubuntu/casper-rw type ext4 (rw,nosuid,nodev,uhelper=udisks2)
    /dev/sr1 on /media/ubuntu/cdrom_install type udf (ro,nosuid,nodev,uid=999,gid=999,iocharset=utf8,umask=0077,uhelper=udisks2)
    rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)
    

Viewing all articles
Browse latest Browse all 145

Trending Articles