Burada anlatılanlar benim küçük/büyük sorunlarımı çözerken izlediğim adımlardır. İlerde bu bilgilere kendim her yerden erişeyim diye, veya benzer sorunları yaşayan başkaları da erişebilsin diye burada biriktiriyorum. Bu adımları uygulamak, hata yapmamak ve doğabilecek herhangi bir hasar sizin kendi sorumluluğunuzdadır. Yazar(lar) veya yazılardaki bağlantıların sahipleri hiçbir şekilde oluşabilecek hata/hasarlardan dolayı sorumlu tutulamazlar.
2019-04-26
pureline
Daha önce PowerLine'ı denemiştim, ama amaca göre biraz aşırı doz izlenimi yarattığı için çok ilgimi çekmemişti. Pureline daha sade. Hoşuma gitti. Github sayfasında bazı şeyler anlatılmış, ama biraz daha açıklama fena olmaz herhalde.
Profil klasörümün altında github repo'sunun kopyasını yarattım:
# git clone https://github.com/chris-marsh/pureline
Bu şekilde ~/pureline klasörü yaratıldı, ve altına ilgili dosyalar indirildi. Bu klasörün altında bir de configs diye bir alt klasör var. Burada örnek bazı yapılandırmalar verilmiş. Bunlardan en fazla göstergesi (ya da modül) olan powerline_full_256col.conf dosyasını profilimin altına kopyaladım.
# cp ~/pureline/configs/powerline_full_256col.conf ~/.pureline.conf
Daha sonra da Github sayfasında önerilen, .bashrc ya da .profile dosyasına şu satırları eklemek:
if [ "$TERM" != "linux" ]; then
source ~/pureline/pureline ~/.pureline.conf
fi
Bundan sonra eğer açıksa terminali kapatıp yeniden açmak lazım. Şu şekilde bir terminal görünecektir:
Burada gözüken göstergeleri (modülleri) değiştirmek/düzenlemek için ~/.pureline.conf dosyasıın açmak gerek. Her göstergenin ~/pureline/pureline dosyası içinde bir fonksiyonu var. ~/.pureline.conf içinde ise şu bölüm altında kullanılan göstergeler belirleniyor:
# All modules are enabled. Uncomment/comment to enable/disable a module
declare -a PL_MODULES=(
# Module Background Foreground
'time_module MyLightGrey Black'
'battery_module MyBlue Black'
'user_module MyLime Black'
'ssh_module MyYellow Black'
'virtual_env_module MyBlue Black'
'path_module MyBlue Black'
'read_only_module MyRed White'
'background_jobs_module MyPurple White'
'git_module MyGreen Black'
'return_code_module MyRed White'
'newline_module'
'prompt_module MyDarkGrey White'
)
İlk sütun dosyadaki fonksiyon ismi. İkinci sütun göstegenin fon rengi, üçüncü sütun ise font rengi. Örneğin terminalde zamanı yazdığımız bölüm için fon rengi MyLightGrey, yazı rengi olarak da Black kullanılmış. Bu satırın baştan sona tek tırnak arasında yazıldığına dikkat!
İstenmeen modüller çıkartılıp, yerleri değiştirilebilir, hatta yenileri yazılabilir.
2019-04-23
git işleri
Git konusuna yabancıyım. Bu kısa giriş ilk başlayanlar için faydalı olabilir.
Elimizde bir proje var. Bunun üzerinde çalışıyoruz. Sürekli değişiklikler yapıyoruz. Yaptığımız değişikliklerin sürümlerini denetlemek istiyoruz. Hatta ortak çalışacak kişilerle birlikte kod paylaşımı yapabilmeyi, belki de açık kaynak kodlu projemizin başkalarının çalışmalarına taban olmasını umuyoruz. Bu amaçla git gibi bir sürüm kontrol sistemi kullanabiliriz.
Önce bir klasör oluşturup bunu git init ile "ilklendirelim". Sonrasına proje oluşurken bu klare yeni dosyalar da eklenecek. İşin bir noktasında uygun gördüğümüz dosyaları git add komutu ile hazırlık aşamasına (staging area) ekleyebiliriz. Bu aşamada henüz sürüm denetim sistemine dahil olan birşey yok. İstenen dosyalar eklendikten sonra hazırlık aşamasındaki dosyaların tümünü git commit komutu ile sürüm kontrol sistemine dahil edebiliriz. Bu adımdan sonra yerel bir depomuz (repository) oldu. Bu depoyu bir internet deposuyla eşzamanlı hale getirmemiz mümkün. Bunun için önce git remote add komutuyla önce bir uzak depo eklememiz, daha sonra da git push komutu ile yerel depomuzu uzaktakiyle eşzamanlı hale getirmemiz gerek.
İlk git yapılandırması için bir kullanıcı adı bir de eposta adresi gerek. İlk yapılandırma şöyle:
# git config --global user.name "kullanıcıadınız"
# git config --global user.email "eposta@adresiniz.com"
Mevcut ayarlarımızı ve ayarların nerden geldiğini görmek istersek:
# git config --list --show-origin
file:/home/metin/.gitconfig user.name=kullanıcıadınız
file:/home/metin/.gitconfig user.email=eposta@adresiniz.com
ya da tek tek bu bilgileri görmek için:
# git config user.name
kullanıcıadınız
olabilir.
İlk ayarlar yapıldı. Şimdi bir klasör yaratalım
# mkdir ~/Belgeler/git/proje1
# cd ~/Belgeler/git/proje1
ve bu klasörü git işlemleri için ayarlayalım (initialize). Bu işlem ile proje1 klasörünün içinde bir .git alt klasörü oluşturulur ve bu klasörün içinde projeye dahil edilen belgeler için sürüm denetlemesi (version control) yapılabilmesi mümkün olur:
# git init
Diyelim ki bu klasördeki tüm txt dosyalarını projeye dahil etmek istiyoruz. Bu durumda verilecek komut:
# git add *.txt
Yapılan değişklikler de git add ile kapsam içine alınmalı. Son olarak değişiklikleri işlemek için git commit kullanılır.
# git commit -m "tum txt dosyaları eklendi"
Burada -m ile son commit ile yapılan işlerin kısa bir özeti verilir, daha sonra geriye dönüp ne yapıldı diye bakılması durumuna karşı.
Buraya kadar yapılanların tümü yerel bilgisayar üzerindeydi. Şimdi oluşturulan verilerin örneğin Github'a senkronize edilmesine bakalım. Öncelikle Github üzerinde bir repository oluşturmamız gerek. Ben BuyukProje diye bir repository oluşturdum. Şimdi mevcut klasörü bu repository ile ilişkilendirmemiz gerek. Repository'nin adresin kopyalayıp aşağıdaki en son alana yapıştırıyorum.
# git remote add BuyukProje http://github.com/kullaniciadi/repository-adi.git
En son olarak commit edilen değişikliklerin git sunucusuna aktarılması için de
# git push -u BuyukProje master
komutu kullanılır. Bu aşamada Github kullanıcı adı ve şifresi istenebilir.
Yapılan işlerin bir kaydını görmek için
# git log
veya mevcut durumun bilgisini almak için
# git status
Hangi uzak sunucuları yapılandırdığımızı görmek için
# git remote
kullanılır. -v anahtarı ile URL ayrıntıları görüntülenebilir.
Öte yandan mevcut bir repository'nin kopyasını çıkarmak/indirmek istiyorsak şu komut kullanılır:
# git clone http://github.com/kullanıcı/proje3
Bu şekilde mevcut klasörün içinde proje3 alt klasörü oluşturulur ve içerik bu alt klasörün içinde yaratılır. Eğer sizin diskinizdeki alt klasör adının proje3'ten farklı birşey olmasını istiyorsak en sona bu klasör ismini yazabiliriz. Her iki durumda git init'te olduğu gibi bir .git alt klasörü daha yaratılarak sürüm denetimi için gerekli veriler burada depolanır.
Üzerinde değişiklik yapılan bir dosyanın tüm değişikliklerini geri alıp, en son repository'den alınan haline geri getirmek için ise
# git reset --hard
gibi birşey buldum, benim çok işime yaradı.
--
https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes
2019-04-17
Google'ın adil olmayan oyunları
Ben de bunları bir Google platformundan paylaşıyorum, bu da garip aslında. Belki de alternatif WordPress'e falan taşımalıyım.
En son Reddit'te rastladığım bir haber üzerine iyice tedirgin oldum. Firefox'un eski geliştirici kadrosundan olduğu söylenen Johnathan Nightingale'in Tweet'leri küçük bir deprem etkisi yaratmış durumda. Zdnet'teki haberde de doğrulanan bilgiler çok ciddi suçlamalar.
Nightingale'e göre yıllarca Google, kendi ürünü Google Chrome'u öne çıkarabilmek için Firefox ile oynayıp durmuş. Üstelik de bunu yaparken "Aa pardon, kusura bakmayın, yanlışlıkla oldu. Firefox ile aynı taraftayız elbette, sizi destekliyoruz" gibi yalan tepkiler ile göz doldurmuş.
Reddit'in r/firefox sub'ında Google ile çeşitli komplo senaryoları paylaşılıyor.
İnternet tarayıcısını seçme özgürlüğü internet üzerindeki en temel haklardan biri olmalı. Arabanı seçebilmek, telefonunu, yediğin yemeği seçebilmek gibi birşey bu. Ama gelinen durum şu ki, yeni kurulan bir bilgisayara ilk yüklenen yazılımlardan biri Google Chrome oluyor. Google garip bir şekilde hem teknoloji ile yakından ilgilenen kesimin, hem de bilgisayarı sadece sosyal ağlara bağlanmak için kullanan kişilerin ilgisini çekerek Chrome'u herkesin gözüne soka soka dünyanın en çok tercih edilen tarayıcısı yapmış durumda. Üstüne Microsoft'un Edge'in mevcut motorunu bırakarak Chromium tabanlı bir sürüme geçiyor olması, piyasadaki chromium tabanlı tarayıcıların oranını iyice artıracak.Standartları Google'ın güdümündeki Chrome/ium belirleyecek. Zaten yapılmaktaydı, Google'un sunduğu sayfalarda Firefox'un performansı bilerek ama yanlışlıkla oldu denilerek düşürülecek. Biz de "Bu Firefox da ne kötü oldu ya" deyip diğer tarafta geçmeyi mantıklı bulacağız.
2019-03-28
GRUB kurtarma
Çoğu zaman düzeltmek için iki yol vardır:
- CD/USB gibi başka bir ortamdan açarak chroot ile grub'ı tekrar oluşturmak
- grub etkileşimli kabuğa (interactive shell) erişerek sistemi bir şekilde açtıktan sonra grub'ı tekrar oluşturmak
Elbette bazı terimleri açıklamak gerek. Artık 2 farklı sistem var. Birincisi eski ama hala var olan MBR diskler. Bunlar BIOS sistemler ile kullanılır. Diskin ilk sektöründe MBR olarak adlandırılan bir bölüm bulunur. Bu bölümün boyutu 512 byte'tır. MBR'nin ilk 446 byte'lık bölümü boot loader, geri kalan 66 byte ise disk bölümü tablosudur (partition table). İkinci sistem BIOS sistemlerin yeni sürümü sayılabilecek UEFI sistemler. UEFI sistemler bu yazının konusu değil.
Herşey yolundayken MBR sistemlerin boot loader'ın (veya MBR'nin) yedeği alınabilir.
$ sudo dd if=/dev/sda bs=446 count=1 of=/root/backup.binBurada diskin sda olduğu varsayıldı. Yukarıdaki satır boot loader'ın yedeğini alarak /root klasörü altındaki backup.bin dosyasına kopyalar. Bu dosyanın uzantısı önemli değil. Uzantısı olmak zorunda bile değil. Sadece boot loader değil, bütün MBR'nin (partition table dahil) bir yedeğini almak için 446 yerine 512 yazılmalıdır. Zamanı geldiğinde bu yedeği kullanarak boot loader'ı tekrar oluşturmak için şu komut kullanılabilir:
$ sudo dd if=/root/backup.bin of=/dev/sda bs=446 count=1Yine elimizde tüm 512 byte'lık bölüm varsa buradaki size parametresini de ona göre değiştirebiliriz. Eğer bilgisayar açılış sırasında aşağıdaki bir ekranda kaldıysa boot loader (ön yükleyici mi desek?) bozulmuş demektir. Yukarıdaki komutları uygulayabilmek için bilgisayarı bir CD veya USB bellek ile bir linux ortamına açmış olmak gerekir.
1. CD/USB ile açarak
Elimizde diskin ilk bölümünün bir yedeği yoksa burayı tekrar yazmak gerek. Bunun için bir linux CD'si veya USB canlı ortamıyla açmak gerek. İlk iş fdisk ile diskin bölümleri hakkında bilgi toplamak olabilir.# fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 3999743 3997696 1.9G 82 Linux swap / Solaris
/dev/sda2 4001790 41940991 37939202 18.1G 5 Extended
/dev/sda5 4001792 41940991 37939200 18.1G 83 Linux
Benim test ortamımda yukarıda görülebileceği gibi linux sda5'te kurulu. sda1 ise swap bölümü.
Yapılacak iş, sda5'i mount etmek, ardından da şu anda açık olan canlı linux ortamındaki dev, sys ve proc klasörlerini sda5'in içindeki ilgili klasörlere bağlamak. Bunun için şu adımlar gerekli.
# mount /dev/sda5 /mntBu aşamadan sonra chroot kullanılarak sda5'te kurulu linux ortamında sanal bir root oturumu oluşturuyorum:
# mount --bind /dev/ /mnt/dev/
# mount --bind /sys/ /mnt/sys/
# mount --bind /proc/ /mnt/proc/
# chroot /mnt/Şimdi grub'ı tekrar yazabilirim:
# grub-install /dev/sda5
2. GRUB interactive shell
Açılış önyükleyicisinin çalıştığı ama linux çekirdeği veya initrd ile ilgili sorunların olduğu durumlarda aşağıdaki gibi bir ekran görüntülenir.Bu durumda herhangi bir tuşa basıldığında yine grub boot menüsü görüntülenir, ama varsayılan boot menüsü girişinden bir sonuç alınamaz. "Advanced Boot Options" altında yer alan bir önceki çekirdek ile açma denenirse sonuç olumlu olabilir. Ama bunların hiçbiri işe yaramadıysa, veya yeni bir linux kurulumu sonrası önceki linuxa ait disk bölümü hiç algılanmadıysa grub boot menüsü görüntülendiğinde "e"ye basılarak boot menüsünü düzenleme moduna veya "c"ye basılarak etkileşimli grub kabuğuna (interactive shell) girilebilir. Örnek bir kurtarma şöyle olabilir:
Disklerin ve bölümlerin listelenmesi
grub> lsDisk numaralama 0'dan başlar. Ama disk bölümü numaralama 1'den başlar. msdos5 yazdığı aslında ext4 bir dosya sistemi.
(hd0) (hd0,msdos5) (hd0,msdos1)
Bir bölümün içeriğinin listelenmesi
grub> ls (hd0,5)/hatta boot klasörünün içeriğini görüntülemek
lost+found etc/ media/ bin/ boot/ dev/ ...
grub> ls (hd0,5)/boot/Birden fazla linux kurulu olan bir diskte işlem yaparken hangi kurulumda olduğumuzdan emin olmak için birçok kurulumda var olan /etc/issue dosyasını kullanabiliriz:
vmlinux-4.18...
initrd.img-4.18...
grub> cat (hd0,5)/etc/issueEmin olduktan sonra /boot/grub/grub.cfg dosyasının konumunu prefix ile belirleyebiliriz:
Ubuntu 18.10 \n \l
grub> set prefix=(hd0,5)/boot/grubSon olarak söz konusu linux kurulumu için kök disk bölümününü (root partition) belirleyebiliriz:
grub> set root=(hd0,5)Bundan sonra normal modülünü yükleyerek sistemi tekrar başlatabiliriz.
grub> insmod normal
grub> normal
Son sözler
Grub menüsü gözüküyor mu?- Gözükmüyorsa grub2-install ile tekrar yazmalı.
- Gözüküyor ama seçim yaptıktan sonra boot etmiyorsa grub.cfg ile ilgili sorun olabilir; grub2-mkconfig kullanılmalı.
2019-03-25
Manjaro mirrorlist
/etc/pacman.d/mirrorlistklasröründe görülebilir. Varsayılan olarak benim sistemimde şöyleydi:
##
## Manjaro Linux default mirrorlist
## Generated on 2018-11-29 11:30
##
## Please use 'pacman-mirrors -f [NUMBER] [NUMBER]' to modify mirrorlist
## (Use 0 for all mirrors)
##
## Country : Germany
Server = https://mirror.netcologne.de/manjaro/stable/$repo/$arch
## Country : France
Server = http://kibo.remi.lu/stable/$repo/$arch
## Country : Philippines
Server = http://mirror.rise.ph/manjaro/stable/$repo/$arch
## Country : Singapore
Server = https://mirror.0x.sg/manjaro/stable/$repo/$arch
## Country : South_Korea
Server = http://mirror.d-tl.com/manjaro/stable/$repo/$arch
## Country : Hong_Kong
Server = http://ftp.cuhk.edu.hk/pub/Linux/manjaro/stable/$repo/$arch
## Country : Japan
Server = http://ftp.riken.jp/Linux/manjaro/stable/$repo/$arch
## Country : United_Kingdom
Server = http://repo.manjaro.org.uk/stable/$repo/$arch
Manjaro ile gelen pacman-mirrors komutu bu dosyayı istenen şekilde güncellemek için bazı kolaylıklar sağlıyor. Örneğin listemizin sadece anlık olarak en iyi erişime sahip 5 sunucudan oluşmasını istiyorsak
$ sudo pacman-mirrors --fasttrack 5kullanabiliriz. Benim sistemimde şöyle bir çıkış üretti:
::INFO Downloading mirrors from repo.manjaro.org
::INFO Using default mirror file
::INFO Querying mirrors - This may take some time
0.548 Germany : http://mirror.ragenetwork.de/manjaro/
0.624 Germany : https://manjaro.moson.eu/
0.390 Germany : http://manjaro.moson.eu/
1.565 Kenya : https://manjaro.mirror.liquidtelecom.com/
0.944 Kenya : http://manjaro.mirror.liquidtelecom.com/
0.425 United_Kingdom : http://manjaro.mirrors.uk2.net/
2.387 Singapore : https://mirror.0x.sg/manjaro/
1.453 Singapore : http://mirror.0x.sg/manjaro/
..... Singapore : ftp://mirror.0x.sg/manjaro/
::INFO Writing mirror list
::Germany : https://manjaro.moson.eu/stable
::United_Kingdom : http://manjaro.mirrors.uk2.net/stable
::Germany : http://mirror.ragenetwork.de/manjaro/stable
::Kenya : https://manjaro.mirror.liquidtelecom.com/stable
::Singapore : https://mirror.0x.sg/manjaro/stable::INFO Mirror list generated and saved to: /etc/pacman.d/mirrorlist
Kırmızı ile vurgulanan yerlerde sırasıyla sunucu listesini Almanya, Birleşik Krallık, Almanya, Kenya ve Singapur sunucularından oluşturarak yazdığını belirtiyor. Bundan sonra uygulanacak bir güncellemenin daha hızlı olması beklenir.
Eğer en hızlı sunucu Türkiye'deki sunucudur diyorsak sadece Türkiye sunucusunu kullanmak için şöyle bir komut verebiliriz.:
$ sudo pacman-mirrors --country Turkeybu komut da şöyle bir çıktı üretti:
::INFO Downloading mirrors from repo.manjaro.org
::INFO User generated mirror list
::------------------------------------------------------------
::INFO Custom mirror file saved: /var/lib/pacman-mirrors/custom-mirrors.json
::INFO Using custom mirror file
::INFO Querying mirrors - This may take some time
0.338 Turkey : http://ftp.linux.org.tr/manjaro/
0.729 Turkey : ftp://ftp.linux.org.tr/manjaro/
::INFO Writing mirror list
::Turkey : http://ftp.linux.org.tr/manjaro/stable/$repo/$arch::INFO Mirror list generated and saved to: /etc/pacman.d/mirrorlist
::INFO To reset custom mirrorlist 'sudo pacman-mirrors -id'
::INFO To remove custom config run 'sudo pacman-mirrors -c all'
veya olası ülkeleri listelemek için
$ pacman-mirrors --country-list
kullanılabilir.
Gördüm ki Manjaro, Arch Linux gibi reflector kullanmıyormuş.
Ekleme 2021-08-12 : https://archlinux.org/mirrorlist/ sayfasından çevrimiçi mirrorlist dosyası oluşturulabiliyormuş.
Ekleme 2023-06-10: --default anahtarı ile varsayılan mirror dosyası ayarlanabiliyormuş.
2019-03-12
Linux'ta açık bir pencerenin PID'sini ve süreç adını bulma
Microsoft Excel Online olarak çalılşan programın ne olduğunu merak ettim. Bu gibi durumlarda xprop'u (Property Displayer for X) kullanıyorum. Komut satırından
$ xprop _NET_WM_PID
çalıştırıyorum. Bundan sonra farenin okuyla bu pencerenin içine tıklıyorum. Bana farenin altındaki pencerenin PID'sini veriyor.
_NET_WM_PID(CARDINAL) = 1330
Bundan sonra da ps ile 1330 numaralı sürecin ne olduğuna bakmak kalıyor.
$ ps -p 1330 -o pid,command
PID COMMAND
1330 python3 ./ms-excel-online
Demek bir python betiğiymiş. Acaba ms-excel-online nerede?
$ locate ms-excel-online
/usr/share/ms-office-online/excel/ms-excel-online
Bunu da ilk defa bir linux dağıtımında görüyorum. LibreOffice falan varken Microsoft Office'in online sürümüne ait linkler... Linux da Microsoft'u seviyor mu acaba?
2022-01-20 ek: Şu sayfada konu enine boyuna tartışılmış. Alternatif yöntem olarak xdotool önerilmiş. Kurulu değilse Fedora için aynı isimli paketi kurabiliriz. Kullanım şöyle:
$ xdotool selectwindow getwindowpid
Xfce'de görev yöneticisinin (xfce4-taskmanager) araç çubuğunda bulunan "artı" işaretine benzeyen buton tıklandığında da benzer şekilde çalışan pencerenin seçilerek görev yöneticisindeki çalışan süreçler listesindeki satırına odaklanılması sağlanıyor. X yerine Wayland kullanan bir sistemde şu sayfada lg (looking glass) önerilmiş.
tcplay kullanımı
Archlinux Wiki'sinde tcplay gözüme çarpmıştı, cryptsetup ve Veracrypt'in yanısıra. tcplay'i denemeye karar verdim. Kurulum basit:
$ sudo pacman -S tcplay
Bundan sonra elimizdeki örneğin tcvolume.tc adındaki bir truecrypt birimini örneğin /mnt klasörüne bağlamak için şu komut dizileri gerek:
$ sudo losetup /dev/loop0 tcvolume.tc
$ sudo tcplay -m tcvolume.tc -d /dev/loop0
$ sudo mount -o nodev,nosuid,uid=100,gid=100 /dev/mapper/tcvolume.tc /mnt
İşimiz bittikten sonra da kaldırmak için
$ sudo umount /mnt
$ sudo dmsetup remove tcvolume.tc
$ sudo losetup -d /dev/loop0
Buradaki kritik nokta loop0. Şuradaki bilgiye göre yeni linux çekirdeklerinde açılışta varsayılan olarak loop modülü yüklenmiyor. Dolayısıyla loop0, loop1 vs yok. Bunları yaratmak gerek. Önce
$ sudo modprobe loop
(eğer her açılışta bunu yapmasını istiyorsak
$ sudo tee /etc/modules-load.d/truecrypt.conf <<< "loop"
daha iyi olacaktır)
ile loop modülünü yüklemek, ardından da örneğin 4 tane /dev/loop# yaratmak gerek:
$ echo "options loop max_loop=4" > /etc/modprobe.d/eightloop.conf
Bunu bir shell script'i ile yapmak
Yukarıdaki işlemer her dosya için ayrı ayrı oldukça uğraştırıcı olur. Onun için az biraz kısatılmış hali şöyle bir bash script'i ile olabilir:
tcmount.sh
#!/bin/bash
sudo losetup /dev/loop$1 $2
sudo tcplay -m $2 -d /dev/loop$1
sudo mount -o nodev,nosuid,uid=1000,gid=1000 /dev/mapper/$2 $3
tcumount.sh
sudo umount $3
sudo dmsetup remove $2
sudo losetup -d /dev/loop$1
Örnek olarak yine tcvolume.tc dosyasını /mnt klasörüne bağlamak için:
$ sudo tcmount.sh 0 tcvolume.tc /mnt
ve bağlantıyı kesmek için ise
$ sudo tcumount.sh 0 tcvolume.tc /mnt
kullanmak gerek. Aynı anda birden fazla dosyanın bağlanması ihtimaline karşı loop için de bir parametre kullandım. Gerekli görülmezse $1 silinerek giriş argümanı sayısı 2'ye düşürülebilir.



