Kategori: Linux

  • Linux konsolda disk imajında değişiklik yapmak

    Elinizde Banana Pi için hazırlanmış debian dağıtımı olan “bananian.img” adında bir disk imajı var diyelim. Aşağıda bu imaj üzerinde nasıl değişiklikler yapılabileceğine dair komutlar ve örnekler bulunmaktadır. Bu örneklerde imajın partition listesini görmek, dosya sistemini kontrol etmek, imajı ve içindeki partitionları genişletmek ya da daraltmak ile ilgili bilgiler vardır. Bu örnekleri uygulamadan önce imajı yedeklemek için muhakkak bir kopyasını, mümkünde başka bir yere alın. Bu örneklere bakarak yapacağını işlemler sonucunda imajda oluşabilecek hatalar ve hatta geri döndürülemeyecek bozulmalardan bu yazıyı yazan yazar sorumlu değildir.

     

    “bananian-1508..img” imajını mount etmeden önce içinde ne tip ve kaç tane partition var bakalım:

    fdisk -l bananian-1508.img

    Disk bananian-1508.img: 1899 MB, 1899999744 bytes
    255 heads, 63 sectors/track, 230 cylinders, total 3710937 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
    Disk identifier: 0x0ccea0b3

    Device Boot Start End Blocks Id System
    bananian-1508.img1 2048 43007 20480 83 Linux
    bananian-1508.img2 43008 3710936 1833964+ 83 Linux

    Görüldüğü üzere imaj dosyamızda iki adet partition bulunmaktadır. Bu bölümlerden bananian-1508.img1 olanı “/boot” partition’ı ve bananian-1508.img2 olanı da “/” partition’ı.  Bu dağıtıma birşeyler eklemek istedik ancak “/” partition’ında kullanılacak alan kalmamış. bu yüzden alanı genişletmemiz gerekiyor. (Bu durumda artık imaj dosyasını en az 4GB bir belleğe yazabileceksiniz)

    Bölümü genişletmek için öncelikle imaj dosyasını genişletmek gerekmekte. Elimizdeki imaj dosyasının boyutlarına bir bakalım:

    qemu-img info bananian-1508.img
    image: bananian-1508.img
    file format: raw
    virtual size: 1.8G (1900000256 bytes)
    disk size: 1.8G

    Raw image dosyamızın boyutu 1.8GBmış. Şimdi bu dosyayı genişletelim:

    #qemu-img resize bananian-1508.img +2.2GB
    Image resized.

    Yukarıdaki komut ile img dosyasının mevcut boyutunu 2.2GB daha genişlettik yani 1.8GB + 2.2GB = 4GB oldu.

    # qemu-img info bananian-1508.img
    image: bananian-1508.img
    file format: raw
    virtual size: 4.0G (4262232576 bytes)
    disk size: 1.8G

    Şimdi raw img dosyası içindeki “/” bölümünü genişletmeye başlamadan önce dosya sisteminin temiz olup olmadığını kontrol edip hatalar var ise düzeltmemiz gerekmekte. Aksi takdirde partition genişletme işlemi sırasında veri kaybına sebep olunabilir. Dosya sistemini kontrol etmek için önce “/” partition’ını loopback olarak bağlamamız gerekiyor:

    losetup -o $((512 * 43008)) /dev/loop0 bananian-1508.img

    Yukarıdaki komutta -o anahtarından sonra yazan $() ve içindeki kısımın açıklaması şu şekilde: $() = içerikteki işlemi yap ve sonucu ver (512 * 43008). Buradaki 512 yukarıda fdisk çıktısında bulunan “Units = sectors of 1 * 512 = 512 bytes” satırındaki 1 sektördeki toplam byte sayısını ve 43008 rakamı da bananian-1508.img2 partition’ının başlangıç sektörünü ifade eder.

    Böylelikle “bananian-1508.img” imajı içindeki “bananian-1508.img2” partition’ınını “/dev/loop0” aygıtına bağlamış bulunduk. Şimdi bu aygıt üzerinden dosya sistemini kontrol edeceğiz.

    fsck -fvp /dev/loop0

    Yukarıdaki komutun anahtarlarına bakacak olursa “f” bölüm temiz olarak işaretlenmiş olsa da kontrol et, “v” çıktılar açıklayıcı olsun, “p” eğer hata bulursan bana sormadan düzelt anlamlarını taşımaktadır. Eğer herhangi bir hata yoksa çıktı aşağıdaki gibi olacaktır:

    fsck from util-linux 2.20.1

    18329 inodes used (15.98%, out of 114688)
    15 non-contiguous files (0.1%)
    29 non-contiguous directories (0.2%)
    # of inodes with ind/dind/tind blocks: 0/0/0
    Extent depth histogram: 16003/4
    245346 blocks used (53.51%, out of 458491)
    0 bad blocks
    1 large file

    14230 regular files
    1624 directories
    12 character device files
    25 block device files
    0 fifos
    2 links
    2429 symbolic links (2276 fast symbolic links)
    0 sockets
    ————
    18322 files

    Dosya sistemini kontrol ettiğimize göre şimdi bölümü genişletebiliriz. Bu işleme başlamadan önce bölümü loopback’ten çıkartmamız lazım. öncelikle loopbackte neler varmış onu kontrol edelim:

    losetup -a
    /dev/loop0: [0811]:7874548 (/media/Home/sencer/Downloads/Bananian/bananian-1508.img), offset 22020096

    Görüldüğü üzere sadece bağladığımız partition görünüyor. Bazen yanlışlıkla iki kere bağlamış olabiliyorum bu durumda aynı satırdan “/dev/loop1” olarak bir tane daha altında görünür.

    losetup -d /dev/loop0

    Şimdi imajın partitonlarını genişletmek için tam olarak disk gibi görünmesini sağlamamız lazım. Bunun için img dosyasını bağladıktan sonra partitionları da maplememiz gerekiyor. Bunu yapmanın kolay yolu “kpartx” komutu ile imajı loopback device’a bağlamak.

    kpartx -a -v bananian-1508.img
    add map loop0p1 (252:0): 0 40960 linear /dev/loop0 2048
    add map loop0p2 (252:1): 0 3667929 linear /dev/loop0 43008

    Gördüğünüz üzere komut otomatik olarak partitionları mapledi.

    Bundan sonra parted resize ile /dev/loop0 diskini açıp genişletmek istediğiniz bölümü elden geçirebilirsiniz. Baktınız aşağıdaki şekilde hatalar mı veriyor, “gksu gparted /dev/loop0” ile grafik ekranda gparted ile de değişiklikleri yapabilirsiniz.

    Örnek hata: “Error: File system has an incompatible feature enabled. Compatible features are has_journal, dir_index, filetype, sparse_super and large_file. Use tune2fs or debugfs to remove features.”

    Resize işleminiz bittikten sonra aşağıdaki komut ile imaj dosyasını loopback devicelardan ayırabilirsiniz:

    kpartx -vd bananian-1508.img
    del devmap : loop0p2
    del devmap : loop0p1
    loop deleted : /dev/loop0

  • Intel Atom D510MO linux sensör ayarları

    Linux altında anakart, işlemci ve psu değerlerini ölçmek için kullandığımız lm-sensors paketi normalde pek çok sensörü otomatik olarak tanıyor ve kritik eşiklerin dışında bir veri algılarsa uyarı verebiliyor. Fakat kullandığımız ev sunucusundaki Intel Atom D510MO model anakarttaki sensörleri doğru okusa da tam olarak desteklenmediği için uygun kritik eşik şablonu kullanmamakta.

    Bu yüzden # sensors komutu ile çıktıları incelediğimizde sensörlerden gelen veriler doğru olsa da kritik eşik değerleri yanlış olduğunda, çıktıda “ALARM” görüyor olabilirsiniz. Korkmayın, aslında anakrtta bir sorun yok (tabi doğru voltajı alıyor ve yeterince soğutuluyorsa). Bu sorunu gidermek için aşağıdaki sensors şablonunu kullanmamız gerekmekte.

    Intel Atom D510MO linux sensör ayarları için sensors şablonunu değiştirmeden önce “/etc/sensors3.conf” dosyasının yedeğini alın her ihtimale karşı. Daha sonra asıl dosyanın içeriğini “# >sensors3.conf” komutu ile boşaltın. Daha sonra herhangi bir editör ile aşağıdaki şablonu dosyaya yazıp kaydedin. Son olarak sistemi yeniden başlatın ya da “# sensors -s” komutunu çalıştırın.

    chip “w83627thf-*” “w83637hf-*”
    label in0 “VCore”
    label in3 “+5V”
    label in4 “+12V”
    label in5 “-12V”
    label in7 “V5SB”
    label in8 “+3.3V”

    compute in3 ((34/51)+1)*@, @/((34/51)+1)
    compute in4 ((25/10)+1)*@, @/((25/10)+1)
    compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1)

    ignore in1
    ignore in2
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min 12 * 0.90
    set in4_max 12 * 1.10
    set in7_min 5 * 0.95
    set in7_max 5 * 1.05
    set in8_min 3.0 * 0.80
    set in8_max 3.0 * 1.20

    label temp2 “CPU Temp”
    label temp1 “M/B Temp”

    set temp1_max 60
    set temp1_max_hyst 56
    set temp2_max 80
    set temp2_max_hyst 75
    ignore temp3

    label fan1 “CASE Fan”

    set fan1_min 400
    ignore fan2
    ignore fan3

    set beep_enable 1

    Bundan sonra sensors komutu doğru sonuçları verecektir.

  • Reinstalling a deb package with its dependencies

    For example; I broke my linux mint, mintinstaller package. And I try to reinstall it with its dependencies to fix it:

    # apt-get install –reinstall mintinstall `apt-cache depends mintinstall | awk ‘/Depends:/{print$2}’`

    “apt-cache depends” command provides dependency packages of the mintinstall package to apt-get install command.

  • Cinnamon Masaüstü Hot Corners özelliğinin efektif kullanımı

    Rahmetli Opera’nın (12 ve öncesi sürümünden bahsediyorum) bana kazandırmış olduğu bir alışanlık olan Fare Hareketleri ile bilgisayarda hakimiyet kurma yeteneğinin, fi tarihinde OpenGL üzerinden masa üstüne çeşitli görsel ve kullanım özellikleri kazandıran Compiz projesi ile ekranın köşe ve kenarlarına işlevlik kazandırılması ile birlikte ekranın tamamına yayılmış durumdaydı.

    Compiz’in kazandırdıkları nelerdi; fare imlecini ekranın herhangi bir kenarına ya da köşesine götürdüğünüz zaman o kenar/köşe’ye atanmış olan eklentiyi çağırarak çeşitli aksiyonlar yapmasıydı. Örneğin, pencereleri ekrana karo karo yerleştirerek ön izleme sağlamak ve istediğin pencereye bu ön izlemeden geçiş yapmak. Tek hareketle masaüstüne ulaşmak ya da pencereleri geri büyütmek gibi…

    Tabi artık bu tip olaylar masaüstlerine entegre olarak gelmekte. Ben de hanidir Compiz ayarları ile oynama çılgınlığından vazgeçmiş durumdaydım.

    Bu gün fare yanlışlıkla köşeye gidince expose çalıştı. Ben de “bu expose yanlış köşede duruyor” diye düşünüp ayarları değiştireyim diye Linux Mint kontrol paneline yöneldim. Hot Corners (evet Cinnamon’da adı bu) özelliklerini açtım ve expose’u baka köşeye aldım. Tabi bu işlemi yaparken dikkatimi çeken bir özellik oldu. Köşelere hali hazırda yaptırılabilecekler sınırlıydı ve hepsi de pencereleri ya da masa üstlerini (çoklu masa üstü kullananlar için) expose etmek üzerineydi.

    hotcorners

    Seçenekler arasında bir de komut çalıştırma özelliği vardı ki onu görünce zaten pek fayda sağlamayan özellikelrinden dolayı çoktan vazgeçmiş olduğum köşeleri kullanma hastalığım nüks eder gibi oldu.

    Madem köşeler var ve bu köşelere komut atayabiliyorum, e o zaman istediğimi yatırayım bari dedim. Sol alt köşeye Mint menüsünü otomatik açma özelliği ekledim. Çok da güzel oldu. Zaten Mint menüsünün fare imlecini üzerine getirince açılması gibi bir özelliği vardı ama sürekli açılıp durmasını da istemiyordum.

    hotcorners_runNe zaman yanlışlıkla üzerinden bi an çeksem menü patlıyordu. İşte burada Köşelerin güzelliği ortaya çıkıyor. Köşeler fare imleci hafifçe dokununca değil, baya sert çarpınca çalışıyor. Böylece sol alt köşeye şu komutu ekledim ve sen sağ ben selamet yoluma devam ettim:

    xvkbd -xsendevent -text “\[Super_L]”

    Bu komutun çalışması için doğal olarak sistemde “xvkbd” paketinin yüklü olmas gerekmekte. Eğer yüklü değilse hemen konsoldan paketi kurabilirsiniz.

    sudo apt-get install xvkbd

    Bu şekilde siz de köşelere istediğiniz komutları atayarak köşeleri etkin kullanmaya başlayabilirsiniz.

  • Linux 4.0-RC1 “Hurr durr I’m a sheep” kerneli yayınlandı

    TuxLinus Torvalds geçen hafta yaptığı anket sonucunda Linux 3.20 çekirdeğini Linux 4.0  olarak adlandırmaya karar vermiş. Torvalds, Pazar gecesi birçok önemli güncellemeler barındıran Linux 4.0-RC1’i  “Hurr durr I’m a sheep” kod adıyla yayınlanmış durumda.

    (daha&helliip;)

  • SSH tünel ile internette dolaşalım

    imagem_sshNe yaptınız ne ettiniz bir şekilde yurt dışından bir sunucu kiraladınız. Ancak henüz üzerine VPN servisi kurma şansına sahip olamadınız ve acilen o çıkışı kullanmanız gerekiyor. İşte yapmanız gereken:

    Öncelikle SSH forwarding özelliğini kullanarak bulunduğunuz makinadan sunucuya bir SSH bağlantısı kuruyoruz:

    # ssh -v -D 5000 -N sunucu_adresi.com

    Bu bağlantıyı işiniz bitmeden kapatmayın aksi takdirde aşağıdaki ayarlar hiçbir işe yaramayacaktır. Daha sonra kullandığınız browser’ın bağlantı ayarlarına girip bu bağlantıyı SOCKS olarak tanıtıyoruz. Görsellerde örnek olarak Firefox browser kullanılmıştır:

    Screenshot from 2015-01-17 14:25:16
    Screenshot from 2015-01-17 14:26:14

    Şu andan itibaren internete karşı sunucu üzerinden erişmektesiniz. İşiniz bittikten sonra yukarıdaki resimde görünen ayarı geri aldıktan sonra, yine normal kullandığınız internet çıkışına dönebilirsiniz. Tabi işiniz bittikten sonra başlattığımız SSH bağlantısını da sonlandırabilirsiniz.

  • Eve Torrent Download sunucusu inşaa edelim

    transmissionÖnceki yazılarımda Atom anakart üzerine nasıl Ubuntu sunucu kurulacağını anlatmıştım. Bu gün sizlere bu sunucu üzerine Torrent Download sunucusu kuracağız. Bu sunucu için paket deposunda bulunan “tranmission” uygulamasının sunucu paketini kullanacağız.

    Atom anakart tercih etmemin sebebi, daha önce de dile getirdiğim üzere düşük enerji tüketimi. Diyeceksiniz ki daha düşük enerji tüketimi için RaspberryPi gibi seçenekler varken neden atom kullanalım. Sebep basit, elde olanı değerlendirmek 🙂

    Şimdi, daha önce kurulumunu tamamlamış olduğumuz Ubuntu sunucuya ister konsoldan, isterseniz SSH ile bağlantı kurarak işe başlıyoruz. Her şeyin yolunda gittiğini varsayarsak sunucumuzu artık “Headless” olarak (Monitörsüz, klavyesiz) uzaktan kullanabilmemiz lazım. O yüzden ben bu işlemleri yaparken SSH ile bağlantı kurarak yapacağım.

    # ssh 192.168.1.10

    (daha önceki yazılara istinaden sunucunun 192.168.1.10 IP’sinde olduğunu varsayıyorum)

    Normal kullanıcı olarak sistem çağında değişiklik yapamayacağımız için “Super User” olmak gerek. Böylece paket kurulumu ve paket ayarlarının yapılmasında sorun yaşamayız.

    #  sudo -s
    [sudo] password for user:
    root:~#

    Paket kurulumlarından önce, eğer yaptığınız işlemler arasında uzun süre geçmişse (mesela bir gün) öncelikle paket depolarını güncelleyin ve eğer yeni güvenlik yamaları gelmişse onları uygulamak gerek.

    root:~# apt-get update
    …..
    Fetched 2.606 kB in 14s (175 kB/s)
    Reading package lists… Done

    root:~# apt-get upgrade
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Calculating upgrade… Done
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    root:~#

    Artık torrent sunucumuzu kurmaya hazırız. Torrent sunucusu kurmak için:

    root:~# apt-get install transmission-daemon

    Bu işlem sonucunda bağımlılıklardan dolayı ek olarak iki paket daha kurulacaktır: “transmission-cli, transmission-common”. Kurulum işlemi ile birlikte sisteme “debian-transmission” adında yeni kullanıcı ve grup eklenecektir. Bu bilginin neden gerekli olduğunu biraz sonra anlatacağım.

    Kurulum biter bitmez sistem otomatik olarak transmission servisini çalıştıracaktır. Biz ise bu servisi durdurmak zorundayız. Çünkü servisi durdurmadan yapacağınız ayar değişiklikleri, servisi durdurmaya kalktığınızda programın yapısından dolayı mevcut ayarları üzerine yazarak önceki haline döndürecek şekilde ayarlanmıştır. Eğer servisi durdurmadan değişiklik yapıp servisi yeniden başlatırsanız ayar dosyasının eski haline döndüğünü görebilirsiniz.

    root:~# service transmission-daemon stop

    Servisi durdurduktan sonra, öncelikli olarak tranmission servisinin kullanmasını istediğimiz klasörleri ayarlamamız gerekli. Bu makinanın bir sunucu olduğunu göz önüne alırsak, Linux dizin hiyerarşisine göre “/srv” klasörünü kullanmamız doğru bir karar olacaktır. Ancak keyfinize göre bambaşka bir dizini kullanabilirsiniz de. Tabi ki bunlar ileride başınız iş açma potansiyeline sahip davranışlar olabilir.

    root:~# cd /srv
    root:/srv# mkdir -pv torrent/gelen torrent/indi

    Oluşturmuş oduğumuz dizinler doğal olarak “root” kullanıcısına ve grubuna dahil olacaktır. Bu durumda transmission servisinin bu klasöre yazma ile ilgili problemleri olabilir. Sorunu aşmak için öncelikler “torrent” klasörü ve alt klasörlerinin erişim haklarını ayarlayarak doğru gruba dahil etmemiz gerekir;

    root:/srv# chown root:debian-transmission torrent -R
    root:/srv# chmod 775 torrent -R

    Şimdi yapılandırma dosyasını ayarlamaya başlayabiliriz.

    root:/srv# cd /etc/transmission-daemon

    Öntanımlı yapılandırma dosyasını yedeklemek önemli. Herhangi bir aksilik durumunda yedekten geri dönmek gerekebilir.

    root:/etc/transmission-daemon# cp settings.json settings.json.backup

    Yapılandırma dosyasının yedeğini aldığımıza göre, metin tabanlı editör ile “settings.json” dosyasını düzenlemeye başlayalım:

    root:/etc/transmission-daemon# nano settings.json

    Yapılandırma dosyasındaki bazı satırların ayarlarını aşağıdaki yönergeleri takip ederek istediğiniz şekilde ayarlayabilirsiniz. Bu ayarlar şu an mevcut çalışan sistemden alınmıştır ve orjinal değerleri ile birlikte verilmektedir. Ayrıca ne işe yaradıklarına dair bilgi de eklenmiştir:

    “alt-speed-down”: 1, (OD: 50, kB/s cinsinden alternatif Download hız ayarını belirtir)
    “alt-speed-enabled”: true, (OD: false, alternatif hız ayarlarının kullanılıp kullanılmayacağını belirtir)
    “alt-speed-time-begin”: 345,  (OD: 540, dakika cinsinden alternatif hız uygulamasının başlayacağı saati belirtir)
    “alt-speed-time-enabled”: true, (OD: false, alternatif hız sürecinin başlatılıp başlatılmayacağını belirtir)
    “alt-speed-time-end”: 5, (OD: 1020, dakika cinsinden alternatif hız sürecinin biteceği saati belirtir)
    “alt-speed-up”: 1, (OD: 50, kB/s cinsinden Upload hızını belirtir)
    “bind-address-ipv4”: “192.168.1.10”, (OD: 0.0.0.0, sunucunun dış IP adresini belirtir.)
    “blocklist-enabled”: true, (OD: false, tercihen yalancı bağlantıları listesi kullanılıp kullanılmayacağını belirtir.
    “blocklist-url”: “http://john.bitsurge.net/public/biglist.p2p.gz”, (OD: http://www.example.com/blocklist, yalancı bağlantı listesinin edinileceği adres)
    “download-dir”: “/srv/torrent/indi”, (OD: /var/lib/transmission-daemon/downloads, tamamlanan dosyaların taşınacağı dizin)
    “download-limit-enabled”: 1,  (OD: 0 (Sınırsız), Eş zamanlı kaç download yapılacağını belirtir.)
    “download-queue-size”: 1, (OD: 5, En fazla kaç download sıraya sokulabileceğini belirtir)
    “idle-seeding-limit”: 1, (OD: 30, Boştayken ne kadarlık bir süreçte dosyayı dağıtacağını belirtir)
    “idle-seeding-limit-enabled”: true, (OD: false, Boştayken  dosya dağıtımı yapılıp yapılmayacağını belirtir)
    “incomplete-dir”: “/srv/torrent/gelen”, (OD: /home/debian-transmission/Downloads, inmekte olan dosyaların barındırılacağı dizini belirtir)
    “incomplete-dir-enabled”: true, (OD: false, Tamamlanmamış indirmelerin ayrı dizinde tutulmak istenip istenmediğini belirtir)
    “lpd-enabled”: true, (OD: false, Yerel ağda dosya dağıtan eş taraması durumunu belirtir)
    “ratio-limit-enabled”: true, (OD: false, Dosya dağıtımına oransal olarak sınırlandırma uygulanmasını belirler)
    “rpc-authentication-required”: false, (OD: true, Web arayüzüne erişim için parola gerekip gerekmediğini belirtir)
    “rpc-bind-address”: “192.168.1.10”, (OD: 0.0.0.0, Web arayüzüne sunucu dışından erişebilmek için sunucu adresi verilir)
    “rpc-whitelist”: “127.0.0.1, 192.168.1.*”, (OD: 127.0.0.1, web arayüzüne hangi IP’lerden erişilebileceğini belirler=
    “seed-queue-size”: 1, (OD: 10, Eş zamanlı dağıtım kuyruğu sınırını belirler)
    “speed-limit-up”: 50, (OD: 100, kB/s cinsinden normal zamanlarda Upload hızın belirtir)
    “speed-limit-up-enabled”: true, (OD: false, Normal zamanlarda Upload hız sınırı uygulanığ uygulanmayacağını belirtir)
    “trash-original-torrent-files”: true, (OD: false, .torrent uzantılı dosyaların işi bitince silinip silinmemesi gerektiğini belirtir)

    Yukarıdaki ayarlardan normal ve alternatif zaman hız limitlerini, kuyrukları ve block-list ayarını web arayüzünden de yapabilirsiniz. Bu hali ile torrent servisi çalışmaya hazır durumda, ancak bir eksiğimiz var o da loglama. Eğer siz de benim gibi loglama manyağıysanız, Transmission torrent servisinin loglaması ön tanımlı olarak kapalı gelmektedir, bunu belirtmekte fayda var. Loglamayı çalıştırmak için /etc/default/transmission-daemon dosyasına aşağıdaki kalın yazılı kısımları eklemeniz gerek:

    root:/etc/transmission-daemon# cd /etc/default
    root:/etc/default# nano transmission-daemon

    # defaults for transmission-daemon
    # sourced by /etc/init.d/transmission-daemon

    # Change to 0 to disable daemon
    ENABLE_DAEMON=1

    # This directory stores some runtime information, like torrent files
    # and links to the config file, which itself can be found in
    # /etc/transmission-daemon/settings.json
    CONFIG_DIR=”/var/lib/transmission-daemon/info”

    # This directory stores transmission logs.
    LOG_DIR=”/var/log/transmission.log”

    # Default options for daemon, see transmission-daemon(1) for more options
    OPTIONS=”–config-dir $CONFIG_DIR –logfile $LOG_DIR

    # (optional) extra options to start-stop-daemon
    #START_STOP_OPTIONS=”–iosched idle –nicelevel 10″

    Bu dosyayı kaydettikten sonra servisi başlatmadan önce yapmamız gereken son şey “/var/log” dizini içerisinde “transmission.log” isimli bir dosya oluşturmak ve gerekli sahiplik/erişim izinlerini düzenlemek. Aksi takdirde servis kendisi dosya oluşturamayacak ve loglama yapamayacaktır.

    root:/etc/default/# cd /var/log
    root:/var/log/# touch transmission.log
    root:/var/log/# chown debian-transmission:debian-transmission transmission.log
    root:/var/log/# chmod 644 transmission.log

    Log dosyamızı da hazırladığımıza göre artık servisimizi başlatabiliriz.

    root:/var/log/# service transmission start

    Servisimiz çalışmaya başladığına göre, ağdaki diğer bilgisayardaki browserdan transmission web arayüzüne erişip downloada başlayabiliriz. Transmission web arayüzüne erişmek için şu adrese gitmeniz yeterlidir:

    http://192.168.1.10:9091

    Not: Torrent downloadlarınızın daha hızlı çalışması için “settings.json” dosyasında bulunan “peer-port” satırındaki port numarasını, modeminizden sunucuya yönlendiriniz.

  • Atom işlemcili Ubuntu sunucunun IP adres ayarlarını yapalım.

    network_setupDaha önce donanım özelliklerini yazıp kurulumunu yapmış olduğumuz sunucumuz, ilk kullanım esnasında DHCP istemci ile açılacak şekilde otomatik olarak ayarlanmış bulunmakta. Bu da demek oluyor ki evde kullanmış olduğunuz modemin bir özelliği olan, ağa bağlanmak isteyen cihazlara IP sağlama servisinin, sunucumuz için de sıradaki boş IP adresini atayacağı anlamına gelmektedir. Tabi bu durumda her ne kadar ev içerisinde 254 adet cihaz kullanılmayacağını varsaysak da, herhangi bir şekilde sunucunun yeniden başlaması gerektiği bir durumda, modem cihazı, sunucumuza bambaşka bir IP adresi atayabilir. Bunun önüne geçmek için önümüzde iki seçenek var. Tabi bu seçeneklerin ikisini birden kullanmanız daha sağlıklı bir ağ yapısı oluşturulmasını sağlar.

    İlk olarak her modemde olmayabilecek bir özellik olan modem üzerinden sabit IP atama durumunu anlatacağım:

    Bu özellik daha önce değindiğim gibi her modemde bulunmayabilir. Bulunan modemlerde ise bu ayar, modemin arayüzünden yapılır. Bu ayarı yapabilmeniz için öncelikle sunucunun MAC adresi bilgisine ihtiyacınız olacak. MAC adresini öğrenmek için aşağıdaki komutun çıktısına göz atmamız gerek:

    # ifconfig

    Bu komutun çıktısında aşağıdaki gibi ethernet kartına ait bilgiler görünür:

    eth0      Link encap:Ethernet  HWaddr 70:71:bc:4b:aa:3c  
    inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
    inet6 addr: fe80::7271:bcff:fe4b:aa3c/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    RX packets:7783591 errors:0 dropped:109 overruns:0 frame:0
    TX packets:8576302 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:7357030531 (7.3 GB)  TX bytes:776162943 (776.1 MB)

    Göreceğiniz üzere “inet addr” satırında, sunucu DHPC modda modemden, ilk boş IP adresi olan 192.168.1.2 adresini almış. Bunu modemden değiştirmek için yukarıda “HWaddr” kısmında yazılı olan, ethernet kartının 12 karakterlik donanımsal adresini modemdeki ilgili alana yazıp, karşılığına da hangi IP’de sabit kalmasını istiyorsanız onu yazmanız gerek. Sunucu olarak kullanılacağını düşünürsek genede akılda kalacak IP’leri tercih etmeliyiz, Örneğin; 192.168.1.10

    Bu ayarı modemden yaptığınız vakit, modem 192.168.1.10 adresini sadece bu MAC Adresine tahsis edecek ve sıradaki boş IP olsa dahi bu IP’den sonraki adresi başka makinelere tahsis edecektir. Böylece sunucuda herhangi bir değişikliğe gerek kalmaksızın, sunucu her açıldığında DHPC istemci aracılığı ile 192.168.1.10 adresini alacaktır.

    Ben bu durumda sabit IP konusunda sıkıntı yaşamamak adına, sabit IP’ye sahip olması gereken her cihaz için IP bloğunun en sonundan başlayıp geriye doğru numaralandırmayı tercih ederim. Ya da modemde DHCP sunucu ayarlarından DCHP’den dağıtım dışı bırakılacak bir blok oluştururum. Mesela zaten sabit bir IP’si olan modem 192.168.1.1 ise DHCP’de 192.168.1.2 adresinden itibaren dağıtıma başlıyorsa bunu değiştirip 192.168.1.10 adresinden itibaren dağıtım yapmasını sağlarım. Böylece modem’e MAC ID girmeden de sadece cihazın IP adresini sabitleyerek 2-10 IP aralığında bir yere sabitleyip, sabit IP olmadan çalışan cihazların bu IP’lere yerleşmesinin önüne geçmiş olurum. Sunucunun 2-10 IP aralığına yerleşmesi için doğal olarak DHCP istemci ayarını değiştirip elle sabit bir IP vermemiz gerekir. Bunu nasıl yapacağımızı ise aşağıda açıklayacağım.

    Sunucunun IP adresini sabitlemek için öncelikle o sunucuya doğrudan erişimimizin olması gerekmektedir. Bu işlemi yapmak için sunucuda oturum açtıktan sonra “Super User” olmanız gerekmektedir.

    “Super User” olduktan sonra “/etc/network” klasörü altında “interfaces” dosyasında değişiklik yapmamız gerekiyor. Bunun için komut satırı editörü (nano) ile dosyayı açmamız gerekiyor.

    # cd /etc/network
    # nano interfaces

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    auto eth0
    iface eth0 inet dhcp

    # The primary network interface” satırın altında göreceğiniz üzere ethernet kartı DHCP clent olarak ayarlanmış durumda. Sabit IP haline getirmek için “iface eth0 inet dhcp” satırını başına “#” işareti koyarak yorum satırı haline getiriyoruz ve altına aşağıdaki satırları ekliyoruz:

    # The primary network interface
    auto eth0
    #iface eth0 inet dhcp
    iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-nameservers 192.168.1.1

    Bu ayarları satır satır açıklayacak olursak:

    • iface eth0 inet static: Ethernet kartının sabit IP alacağını belirtir.
    • address 192.168.1.10: Ethernet kartına 192.168.1.10 adresi verileceğini belirtir.
    • netmask: Satırı için standart bir satır olduğunu ve detaylı bilgi için Google’a danışmanızı söyleyebilirim. Çok detaylı bir anlatım gerektirdiği için burada açıklamaya girmeyeceğim.
    • network 192.168.1.0: IP adresinin hangi networkte bulunduğunu belirtir. Standart bir satırdır.
    • broadcast 192.168.1.255: Ağa gönderilecek paketin ne kadar genişlikte bir ağa yayılmasını belirleyen satırdır. Bu satır da standart olarak yazılır.
    • gateway 192.168.1.1: Ethernet kartı üzerinden internete erişmek için kullanılacak IP adresini belirtir, ki bu adres modemin adresidir.
    • dns-nameservers 192.168.1.1: DNS adresini belirtir. Normalde DHCP ile bağlanıldığında modemin vereceği DNS adresidir. İhtiyaca göre bu satıra aralarında boşluk bulunacak şekilde Google ya da başka bir DNS sunucu adresini girebilirsiniz.

    Ayarları girdikten sonra dosyayı kaydedip sunucuyu yeniden başlattığınızda sunucu artık “192.168.1.10” adresi ile açılacaktır. Ayarların etkinliğini sınamak için aynı ağdaki başka bir bilgisayardan “192.168.1.10” adresine ping atarak test edebilirsiniz. Başka bir yöntem sunucuya login olup “ifconfig” komutunun çıktısına bakabilirsiniz. SSH sunucunun kurulu olduğunu varsayarsak aynı ağdaki başka bir bilgisayar ile “ssh” üzerinden bağlanmayı deneyebilirsiniz.

  • Eve Atom işlemcili Ubuntu sunucu kuralım

    ubuntuGeçen yazımızda donanımsal özelliklerine göz atıp genel bilgilendirme yaptığımız Atom işlemcili ana kartımızın üzerine ev içerisindeki otomasyonunu yıkacağımız işletim sistemini kuracağız.

    Bunun için benim tercihim Ubuntu 64Bit 14.04 LTS Minimal Server dağıtımı oldu. Sebebine gelince sadece alışkanlık. İsterseniz başka dağıtımlar da deneyebilirsiniz. Tamamen sizin tercihinize kalmış durumda. Bahsi geçen dağıtımı bulmak pek kolay değil o yüzden alternatiflerinin de bulunduğu adresi vereceğim: https://help.ubuntu.com/community/Installation/MinimalCD

    Dağıtım o kadar hafif ki ISO boyutu sadece 37MB. İndirdiğiniz ISO’nun doğru ISO olduğunu aşağıdaki “hash”ler ile kontrol edebilirsiniz:

    • MD5: 7297321c2fa6424417a548c85edd6e98
    • SHA1: e1e074b4302898698977c08013e0afe5c06245e2

    Edindiğimiz ISO’yu herhangi bir belleğe USB’ye ISO yazma aracı ile yazıyoruz. Yazma işlemi yapan programların arayüzleri genelde aynıdır. Bunun için harici program kuracaksanız sitesinden, paket deposundan kurulmuş yazılımı tercih edecekseniz kendi “manuel”inden kullanımı konusunda bilgi edinebilirsiniz.

    • ISO’yu USB Belleğe yazma araçları:
      • UnetBootin (Linux, Windows, Mac OSX)
      • USB Image Writer (“usb-creator-*” Ubuntu ve türevlerinde paket deposundan edinebilirsiniz)

    ISO’yu belleğe yazdıktan sonra makinaya takıp USB Bellekten “boot” etmemiz gerekmekte. Bunun için makineyi açtıktan sonra BIOS’un ilklenmesi sırasında (Artık genelde çoğu BIOS’ta mevcut bir özellik olan) “Boot Menu”süne giriş yapacağız. Önceki yazımda belirttiğim donanımın BIOS’unda bu menüye erişmek için “F10” tuşuna basmamız gerekiyor.

    “F10” Tuşuna bastığımız zaman karşınıza çıkacak olan BOOT menüsünden USB Belleği seçtikten kısa bir süre sonra “Ubuntu Kurulum Menüsü” çıkacak.

    Kurulum Menüsünden “Install” seçeneği ile kuruluma başlıyoruz. Kurulumun il adımı, kurulum aşamasındaki ekranlarda kullanmak istediğiniz dili seçmenizi sağlar (1). Sonraki ekranda ise yerel ölçü birimleri ve saat ayarlarınızın yapılabilmesi için nerede olduğunuzu seçeceğiniz menü gelir (2). Bundan sonraki adımda ise klavyenizin dilinin belirlenmesine gelir. Bu noktada “<Yes>” seçeneğini seçip klavyenin otomatik olarak tanınması için bir kaç tuşa basabilir ya da “<No>” seçeneğinden devam edip kendiniz istediğiniz bir klavye dilini seçebilirsiniz (3).

    #1
    #2
    #3

    Otomatik donanım tanıma işleminden sonra yerel ağ ayarlarının yapılmasına sıra gelecek ve sizden kuracağınız sistem için bir makine isim belirlemenizi isteyecek. Bu adımda ön tanımlı olarak “Hostname” satırında “ubuntu” yazar (4). Bu ayarı yaptıktan sonra sizden size en yakın paket deposu yansısının bulunduğu ülkeyi seçmenizi isteyecek. Bulunduğunuz ülkeyi seçmeniz yeterlidir (5). Sonra sizden eğer kullanmak istiyorsanız “Proxy” ayarlarını girmenizi isteyecek. Eğer herhangi bir “Proxy” kullanmıyorsanız bu kısmı boş geçebilirsiniz. Sonrasında seçmiş olduğunuz paket deposunu kontrol edip gerekli kurulum dosyalarını o depodan indirmeye başlayacaktır. (6)

    #4
    #5Screenshot from 2015-01-07 21:11:16
    #6Screenshot from 2015-01-07 21:17:10

    “Set up users and passwords” kısmında, genel olarak her işletim sisteminde olduğu gibi, kullanıcı (7) adı ve parola (8) belirliyoruz. Daha sonra bu kullanıcı için oluşturulacak dosyaların şifrelenmesini isteyip istemediğinizi soracak (9). Ben şimdilik bu kısmı es geçiyorum. Çünkü nasıl olsa ev kullanımı için hazırlanan bir sistem olduğundan ve kullandığımız sistemin işlemci gücünü de göz önünde bulundurarak gereksiz yüklerden kaçınıyorum.

    #7Screenshot from 2015-01-09 20:46:57
    #8Screenshot from 2015-01-09 20:47:36
    #9Screenshot from 2015-01-09 20:48:13

    “Configure The Clock” Kurulum, bu adımda sizin bulunduğunuz yeri baz alarak yaklaşık olarak hangi zaman alanında bulunduğunuzu tahmin eder ve buna göre saat tarih ayarlarının  NTP ile otomatik olarak düzenlenmesi için ayar yapacaktır. Onun için muhtemelen size bulunduğunuz zaman alanının “Asia/İstanbul” olarak gösterip doğru olup olmadığını soracaktır. Eğer doğru ise onaylayın, başka bir ülkedeyseniz ona göre gerekli düzeltmeyi yapıp devam ediniz.

    “Partition Disk” kısmında mevcut hard disk’i nasıl bölümlemek istediğinizi belirlemeniz istenecek (10). Ben çok uğraşmaya gerek görmedim ve “Guided – use entire disk” seçeneğini seçtim (11). Böylece kurulum tüm diski otomatik olarak bölümlendirecek ve değişiklikleri yapmak için benden onay isteyecek (12). Onay verdiğiniz takdirde yapılan bölümleme işlemini diske uygulayacak ve kurulum sonraki adımdan devam edecektir. Eğer bir Super User iseniz zaten bu adımda kendi kurallarınızı koyacaksınızdır.

    #10Screenshot from 2015-01-09 20:57:40
    #11Screenshot from 2015-01-09 20:58:05
    #12Screenshot from 2015-01-09 20:58:50

    “Installing the base system” İşletim sisteminin temel kısmı internetten çekilerek kurulmaya başlar. İnternetten çekilmesinin yegane sebebi kurulum için “Minimal” iso kullanıyor olmamızdır.  Minimal ISO hemen hemen içeriğinde hiçbir şey barındırmamaktadır. Bu işlem internet hızınıza göre zaman alabilir (13-14). Temel işletim sistemi paketleri kurulduktan sonra sisteminizi güvende tutmak için otomatik olarak güvenlik yamalarının yapılması ile ilgili ayar gelecek. “Install security update automatically” seçeneği ile güvenlik yamalarının kurulum esnasında yapılmasını sağlayabilirsiniz (15).

    #13Screenshot from 2015-01-09 21:05:19
    #14Screenshot from 2015-01-09 21:21:12
    #15Screenshot from 2015-01-09 21:42:33

    “Software selection” kısmında sunucumuzda çalışmasını bekleyeceğimiz servislerin kurulması için seçim yapacağız. Ben, temel olarak minimum ihtiyacı karşılamak adına sadece  “Basic Ubuntu Server” ve uzaktan erişim sağlayabilmek için “OpenSSH Server” paketini kurdum (16). “Basic Ubuntu Server” paket içeriğinde bir takım yardımcı araçları barındırmaktadır. paket içeriğini görmek için “tasksel –task-packages server” komutu ile paket içeriğini görmeniz mümkün. Aslında bu paketi kurmasam da olur; ancak eğer kablosuz bağlantı kurmak istiyorsam, ya da screen kullanmayı seviyorsam ya da ne bileyim python ile bir takım görevler yazacaksam bu temel paketi kurmakta fayda var. Diğer servisleri, ihtiyacım oldukça yine “tasksel” yardımı ile ileride kurabiliriz.

    “Install the GRUB boot loader on a hard disk” Son işlemlerden birisi “Grub” ön yükleyicinin nereye kurulacağı konusudur. “Grub” ön yükleyiciyi nereye kurmak istediğinizi soracaktır. Eğer benim sistemimde olduğu gibi tek diskli ve sadece Linux işletim sistemi barındıran bir yapıya sahipseniz “Install the GRUB boot loader to the master boot record” sorusuna “<Yes>” cevabı ile karşılık vermeniz gerek (17). Aslına bakacak olursanız zaten başka bir önyükleyici kullanmayacağınız sürece, diskinizde başka bir işletim sistemi de olsa, sisteminizde birden fazla diskte olsa bu cevabı vermeniz en mantıklısıdır. Daha profesyonel yapılar için tabi ki “<No>” seçeneğini seçip kendi yolunuzu çizebilirsiniz.

    “Finish the installation” Ubuntu 14.04 Server Minimal ISO kurulumu tamamlanmış bulunmakta. Bilgisayarın yeniden başlatılıp kurduğunuz işletim sisteminin açılması için “<Continue>” seçiliyken kalvyenizden “Enter” tuşuna basın ve yeni kurmuş olduğunuz işletim sistemine adımınızı atın (18)…

    #16Screenshot from 2015-01-09 22:47:57
    #17Screenshot from 2015-01-09 22:58:19
    #18Screenshot from 2015-01-09 22:59:41

    Sonraki yazımızda bu sunucumuza evdeki herkesin kullanabileceği ortak bir torrent servisi kuracağız. Görüşmek üzere….

  • JNLP dosyası nedir, yenir mi?

    JNLP dosyası Java tabanlı markup dosyadır.

    Linux altında çalıştırmak için Java Runtime Environment’a ihtiyaç duyar.

    *.jnlp uzantılı dosyaları çalıştırmak için `javaws` komutu kullanılır. Örnek:

    # javaws ornek_dosya.jnlp &

     

    Grafik tabanlı uygulamalar olduğu için, bir pencere yöneticisi içinde açtığınız terminalden çalıştırmanız gerekmektedir.