Dobře, našel jsem tu 1GB SD kartu zkusím vám ukázat jak si přesunu /usr/bin na ní a trochu to co dělám okomentuji.
Je to jen pár příkazů, dlouhé to vypadá proto že dávám i výpis z terminálu.
Začínám s SD kartou formátovanou na fat (akorát jsem ji vyndal z foťáku)
Vložil jsem ji do čtečky.
1. přepnu se do roota, podívám se jak mám rozdělené disky
martin@a3-ntb:~$ sudo -s
root@a3-ntb:~# fdisk -l
Disk /dev/sda: 120,0 GB, 120 034 123 776 bajtů
hlav: 255, sektorů na stopu: 63, cylindrů: 14 593
Jednotky = cylindry po 16065 * 512 = 8 225 280 bajtech
Identifikátor disku: 0xf3f08f5d
Zařízení Zavádět Začátek Konec Bloky Id Systém
/dev/sda1 * 1 3188 25600365 83 Linux
Diskový oddíl 1 nekončí na hranici cylindru.
/dev/sda2 3189 14071 87417697+ 83 Linux
/dev/sda3 14072 14593 4192965 82 Linux swap/Solaris
Disk /dev/sdb: 1 019 MB, 1 019 215 872 bajtů
hlav: 14, sektorů na stopu: 45, cylindrů: 3 159
Jednotky = cylindry po 630 * 512 = 322 560 bajtech
Identifikátor disku: 0x00000000
Zařízení Zavádět Začátek Konec Bloky Id Systém
/dev/sdb1 1 3160 995203+ b W95 FAT32
2. SD kartu jsem identifikoval jako disk sdb, rozdělím si jí dle potřeby. Karta je jen 1GB tak vytvářím jen jednu partition, pokud ji budete chtít rozdělit na více tak opakujte volbu "n" a zvolte si velikosti jaké budete chtít. Pak si zkontroluji že se mi opravdu vytvořila nová partition s typem Linux, a následně ji zformátuji na typ ext3.
root@a3-ntb:~# fdisk /dev/sdb
Počet cylindrů tohoto disku je nastaven na 3159.
Na tom není nic špatného, ale jelikož je to více než 1024,
může za určitých okolností dojít k problémům:
1) s programy spouštěnými při startu (např. staré verze LILA)
2) s programy pro správu diskových oddílů z jiných OS
(např. DOS FDISK, OS/2 FDISK)
Příkaz (m pro nápovědu): o
Vytvářím novou DOSOVOU tabulku rozdělení disku s identifikátorem 0xfca2ba9b.
Změny budou uloženy pouze v paměti, dokud se nerozhodnete je uložit na disk.
Poté již nebudou stará data pochopitelně dostupná.
Počet cylindrů tohoto disku je nastaven na 3159.
Na tom není nic špatného, ale jelikož je to více než 1024,
může za určitých okolností dojít k problémům:
1) s programy spouštěnými při startu (např. staré verze LILA)
2) s programy pro správu diskových oddílů z jiných OS
(např. DOS FDISK, OS/2 FDISK)
Varování: chybný příznak 0x0000 tabulky rozdělení disku 4 bude opraven zápisem(w)
Příkaz (m pro nápovědu): n
Příkaz
e rozšířený diskový oddíl
p primární diskový oddíl (1-4)
p
Číslo diskového oddílu (1-4): 1
První cylindr (1-3159, implicitně 1):
Používám implicitní hodnotu 1
Poslední cylindr či +velikost či +velikostM či +velikostK (1-3159, implicitně 3159):
Používám implicitní hodnotu 3159
Příkaz (m pro nápovědu): w
Tabulka rozdělení disku byla změněna!
Volám ioctl() pro znovunačtení tabulky rozdělení disku.
Synchronizují se disky.
root@a3-ntb:~# fdisk -l
Disk /dev/sda: 120,0 GB, 120 034 123 776 bajtů
hlav: 255, sektorů na stopu: 63, cylindrů: 14 593
Jednotky = cylindry po 16065 * 512 = 8 225 280 bajtech
Identifikátor disku: 0xf3f08f5d
Zařízení Zavádět Začátek Konec Bloky Id Systém
/dev/sda1 * 1 3188 25600365 83 Linux
Diskový oddíl 1 nekončí na hranici cylindru.
/dev/sda2 3189 14071 87417697+ 83 Linux
/dev/sda3 14072 14593 4192965 82 Linux swap/Solaris
Disk /dev/sdb: 1 019 MB, 1 019 215 872 bajtů
hlav: 14, sektorů na stopu: 45, cylindrů: 3 159
Jednotky = cylindry po 630 * 512 = 322 560 bajtech
Identifikátor disku: 0xfca2ba9b
Zařízení Zavádět Začátek Konec Bloky Id Systém
/dev/sdb1 1 3159 995062+ 83 Linux
root@a3-ntb:~# mkfs.ext3 /dev/sdb1
mke2fs 1.40.8 (13-Mar-2008)
Jmenovka systému souborů=
Typ OS: Linux
Velikost bloku=4096 (log=2)
Velikost fragmentu=4096 (log=2)
62208 inode, 248765 bloků
12438 bloků (5.00 %) rezervováno pro superuživatele
První blok dat=0
Maximum bloků v systému souborů=255852544
8 skupin bloků
32768 bloků ve skupině, 32768 fragmentů ve skupině
7776 iuzlů ve skupině
Zálohy superbloku uloženy v blocích:
32768, 98304, 163840, 229376
Zapisuji tabulky inode: hotovo
Vytvářím žurnál (4096 bloků): hotovo
Zapisuji superbloky a účtovací informace systému souborů: hotovo
Tento systém souborů bude automaticky kontrolován každých 37 připojení nebo
180 dní, podle toho, co bude dříve. Pro změnu použijte tune2fs -c nebo -i.
3. podívám se na to, kolik místa mi zabírá složka kterou mám v úmyslu přesouvat na SD kartu
root@a3-ntb:~# du -ch /usr/bin
211M /usr/bin
211M celkem
4. vytvořím si dočasnou složku kterou použiji jako mountpoint, připojím si do ní SD kartu, zkopíruji obsah /usr/bin na SD kartu, odpojím a smažu dočasný mountpoint
root@a3-ntb:~# mkdir /docasna
root@a3-ntb:~# mount /dev/sdb1 /docasna/
root@a3-ntb:~# cp --preserve -r /usr/bin/* /docasna
root@a3-ntb:~# umount /docasna
root@a3-ntb:~# rmdir /docasna
5. používám pro připojování UUID, takže se podívám jaké UUID je přiřazené k jaké partition, následně si vypíši stávající tabulku fstab, zedituji ji (doplním řádek kterým říkám kam že to budu připojovat /usr/bin (na SD kartu, tedy zařízení /dev/sdb1, identifikované jeho UUID)
root@a3-ntb:~# blkid
/dev/sda1: UUID="0d5ac8af-32f7-4e5a-9b93-2a89afb8888a" TYPE="ext3"
/dev/sda2: UUID="7c88c31a-42d0-4ef4-b37d-65c7f88c4250" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda3: TYPE="swap" UUID="6100cd06-be51-4b4c-b9cd-b71a6434e8bd"
/dev/sdb1: UUID="70e16827-116b-4fbe-83b9-bd27650163c7" SEC_TYPE="ext2" TYPE="ext3"
root@a3-ntb:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
UUID=0d5ac8af-32f7-4e5a-9b93-2a89afb8888a / ext3 relatime,errors=remount-ro 0 1
UUID=7c88c31a-42d0-4ef4-b37d-65c7f88c4250 /home ext3 relatime,errors=remount-ro 0 0
UUID=6100cd06-be51-4b4c-b9cd-b71a6434e8bd none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
root@a3-ntb:~# nano /etc/fstab
root@a3-ntb:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
UUID=0d5ac8af-32f7-4e5a-9b93-2a89afb8888a / ext3 relatime,errors=remount-ro 0 1
UUID=7c88c31a-42d0-4ef4-b37d-65c7f88c4250 /home ext3 relatime,errors=remount-ro 0 0
UUID=6100cd06-be51-4b4c-b9cd-b71a6434e8bd none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
UUID=70e16827-116b-4fbe-83b9-bd27650163c7 /usr/bin ext3 noatime,errors=remount-ro 0 1
6. přeskenuji partitions v systému, aby se vytvořily zařízení /dev/disk/by-uuid/..., a nechám připojit partitions podle záznamů ve fstab, vypíšu si jestli se mám opravdu /usr/bin na SD kartě a ukončím práci pod rootem
root@a3-ntb:~# partprobe
root@a3-ntb:~# mount -a
root@a3-ntb:~# mount
/dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
lrm on /lib/modules/2.6.24-19-generic/volatile type tmpfs (rw)
/dev/sda2 on /home type ext3 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw)
gvfs-fuse-daemon on /home/martin/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=martin)
/dev/sdb1 on /usr/bin type ext3 (rw,noatime,errors=remount-ro)
root@a3-ntb:~# exit
exit
martin@a3-ntb:~$
7. po restartování se podívám jestli mám stále /usr/bin na SD kartě
martin@a3-ntb:~# mount
/dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
lrm on /lib/modules/2.6.24-19-generic/volatile type tmpfs (rw)
/dev/sda2 on /home type ext3 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw)
gvfs-fuse-daemon on /home/martin/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=martin)
/dev/sdb1 on /usr/bin type ext3 (rw,noatime,errors=remount-ro)
Ano, stále tam /dev/sdb1 je, tak můžu přistoupit k odstranění původního obsahu /usr/bin
- odmountuji /usr/bin
sudo -s
umount /usr/bin
zkontroluji si zda již opravdu nemám /usr/bin mountlý extra, jinak bych si jej smazal na SD kartě
root@a3-ntb:~$ mount
/dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
lrm on /lib/modules/2.6.24-19-generic/volatile type tmpfs (rw)
/dev/sda2 on /home type ext3 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw)
gvfs-fuse-daemon on /home/martin/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=martin)
/dev/sdb1 již nevidím, smažu tedy "původní " /usr/bin
root@a3-ntb:~# rm -rf /usr/bin
vytvořím prázdný mountpoint /usr/bin, aby bylo kam připojovat SD kartu
root@a3-ntb:~# mkdir /usr/bin
nechám jej ať se mi znovu připojí pomocí záznamů v fstab
root@a3-ntb:~# mount -a
a zkontroluji obsah /usr/bin, kam je již opět připojená SD karta
root@a3-ntb:~# mount
/dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
lrm on /lib/modules/2.6.24-19-generic/volatile type tmpfs (rw)
/dev/sda2 on /home type ext3 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw)
gvfs-fuse-daemon on /home/martin/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=martin)
/dev/sdb1 on /usr/bin type ext3 (rw,noatime,errors=remount-ro)
root@a3-ntb:~# ls /usr/bin/
[ gnome-mount pidgin
aclocal gnome-mouse-properties pilconvert.py
....
vidím vše, vyskočím z roota
exit
Pár poznámek na závěr:
Pokud to vypadá že /usr/bin zbytečně stále připojuji a odpojuji tak je to jen z opatrnosti.
Mohl bych bych smazat "původní" /usr/bin už v bodě č.4, ale takto pokud bych z nějakého důvodu neměl k dispozici při bootu driver SD čtečky tak se maximálně nenamountuje /usr/bin na SD kartě, ale stále bude existovat "původní" /usr/bin. (v případě této konkrétní složky by mi blbly maximálně Xka, ale pokud by se to stalo třeba při podobném přesunu složky /sbin nebo /lib tak bych mohl mít vážný problém.)
Stejně tak nemusím mazat z "původního" /usr/bin všechny soubory, ale mohu tam některé základní ponechat, pokud bych je potřeboval využívat i při nepřítomnosti této konkrétní SD karty.
Využití UUID v fstab má také svůj důvod - jako /usr/bin se mi použije pouze tato konkrétní karta a nebude se mi tam snažit přimountovat jakákoliv jiná, jak by nastalo pokud bych využíval namísto UUID jen klasické značení /dev/sd*