09/29/16

Making your own persistent USB bootable Ubuntu Distro: the easy way

I had a recent Ubuntu install with customizations that I wanted to be able to put it on a USB, boot into it on another machine and be able to modify its contents by, installing new packages, editing files, etc…

PinguyBuilder to the rescue

So after a number of false starts. I stumbled upon PinguyBuilder. I followed the excellent instructions at maketecheasier, with the slight modification of checking the PinguyBuilder site for the the latest version. I used the backup option to get all the tweaks on home directory, and my none deb packages in. My Ubuntu was a derivative the standard Xubuntu 16.04 distro.

Moving the ISO to the USB

The generated iso file could then be installed usb-creator-gtk, or if are working on windows, Rufus. At this point I could nicely boot using my USB stick. I could not, however, write anything persistently on the USB. If I create some file, and then reboot, it would be gone!

Making the USB persistent

First I need to create casper-rw file that would be identified by boot-loader as space to write on. I was happy with 2GB, so this what I did by adopting the instructions on StackExchange post:

I created an empty 2GB file

dd if=/dev/zero of=casper-rw bs=1M count=2048

You can changed count to whatever size of persistent storage you want. I then had to format that space into something that Linux would be able to read

mkfs.ext4 -F casper-rw

The next step was to change /boot/grub/grub.cfg file on the USB to have the following menu-entry at the beginning.

menuentry "Xubuntu in persistent mode" {
    set gfxpayload=keep
    linux   /casper/vmlinuz  file=/cdrom/preseed/custom.seed boot=casper persistent iso-scan/filename=${iso_path} quiet splash --
    initrd  /casper/initrd.gz
}

Finally, I modified /isolinux/isolinux.cfg to include the extra label

label persistent 
  menu label live - boot the Live System
  kernel /casper/vmlinuz
  append  file=/cdrom/preseed/custom.seed boot=casper persistent initrd=/casper/initrd.gz quiet splash --

et voilà!

07/11/15

On terrorism and the hate that follows

I worry less about the damage to live and property from acts of terror, than the waves of hate that soon follow. The damage due to hate is always much worse. Hate brings out the worst in humans. It locks the mind in inescapable focus on violence. All noble ideas, and worthy aspirations fall by the wayside as survival becomes the primary preoccupation. When that happens, I sense that the terrorists have already won.

07/11/15

الكراهية أخطر من الإرهاب

أرى نفسي أقل قلقاً من الموت و الدمار الناتج من الأعمال الإرهابية بالمقارنة لموجات الكراهية التي تتبعها. الضرر و الخسارة الناتجة من الكراهية التي تولدها هذه الأعمال أشد خطورة.
الكراهية تسقم القلوب و تبرز أقبح ما في البشر.
الكراهية تسجن العقل في دائرة لا نهائية في التركيز علي العنف.
كل الأفكار النبيلة و الطموحات الشريفة تسقط عندما يكون الهم الشاغل هو البقاء.
عندما يحدث ذالك أشعر أن الإرهاب قد نال غايته.

07/11/15

Herodotus on Decision Making

A decision was wise, even though it led to disastrous consequences, if the evidence at hand indicated it was the best one to make; and a decision was foolish, even though it led to the happiest possible consequences, if it was unreasonable to expect those consequences.

03/7/14

Nepomuk Pains

Recently I ran into a nasty situation on Kubuntu desktop where a host of crucial KDE components would cease to work. Chiefly amongst them were:

  1. No instances of Dolphin would start
  2. The kickoff launcher would not work 
  3. The KDE activity manager was crashing. 

I suspected the Nepomuk might be the culprit and I was right.  I stopped it by running

qdbus org.kde.NepomukServer /nepomukserver quit

I then wiped out its data by running

rm -r .kde/share/apps/nepomuk/

Finally I got it started again by runing

nepomukserver

…and my problems were solved.

Trying to search for a solution to this problem, I found people suggesting that one would wipe the ~/.kde folder and start afresh. That sounded too drastic and a great deal of my customizations would have been lost in the process.

01/6/14

The gods they make

The gods they make capture their fears, their ignorance, and their desire to control.
Their gods share their grotesque outlook, yet they fully capture their aspirations.
Aspirations of dominance, control, and subjugation of others.
Aspirations of meek and mean-spirited human “beings”.
The wretches are blind to human potential!

10/2/12

Using Python and wget to download certain file types from a web-page

Recently I wanted to download all the movies in Mackay’s information theory course. That was a great deal of files and I though it would too tedious to try to do it using the browser or even manual wget. So digging around, I found this decent tutorial on python HTML processing. I also dug around some information on parsing URLs. I combined that with my knowledge of python’s subprocess and put together this nice piece of code.

 

#!/usr/bin/python

import sgmllib

class MyParser(sgmllib.SGMLParser):
"A simple parser class."

def parse(self, s):
"Parse the given string 's'."
self.feed(s)
self.close()

def __init__(self, verbose=0):
"Initialise an object, passing 'verbose' to the superclass."

sgmllib.SGMLParser.__init__(self, verbose)
self.hyperlinks = []

def start_a(self, attributes):
"Process a hyperlink and its 'attributes'."

for name, value in attributes:
if name == "href":
self.hyperlinks.append(value)

def get_hyperlinks(self):
"Return the list of hyperlinks."

return self.hyperlinks

import urllib, sgmllib

# Get something to work with.
webPage="http://www.inference.phy.cam.ac.uk/itprnn_lectures/"
f = urllib.urlopen(webPage)
s = f.read()

# Try and process the page.
# The class should have been defined first, remember.
myparser = MyParser()
myparser.parse(s)

# Get the hyperlinks.
links=myparser.get_hyperlinks()
print links

movies=[x for x in links if x.endswith('mp4')]
print movies

import urlparse
movieURLs=[urlparse.urljoin(webPage,x) for x in movies]
print movieURLs

from subprocess import call

for movieURL in movieURLs:
call(["wget -c "+movieURL],shell=True)
06/12/12

موقعة الجمل و البحث عن الثورة

في يوم 2 فبراير 2011 كنت واقف في صف الدفاع الثاني عند الشارع  الفارق بين جامع عمر مكرم و مبني المجمع في ميدان التحرير. كان دوي المعركة أمامنا مرعب و كنا نتضرع الله ليثب الله أقدامنا و يقوي عزائمنا و يذود عنا شر من يريدون لروح بعثت من جديد أن توأد و لفجر الحرية أن ينزوي. وقفت مع الثوار من الإخوان و غيرهم و نظرنا صوب السماء و هتفنا بصدق لم أشعر به من قبل “يا رب!”. كان للإخوان المسلميين دور مهم في هذا اليوم. كانوا يعملون بإخلاص و تفاني لتنظيم الصفوف و رأب أي صدع أو خلل في الدفاع.
 مشهدان دائما استحضرهم كلما أصابني حنق من تصرفات الإخوان المسلمين. المشهد الأول  لشاب أحسبه من الإخوان مشجوج الرأس و مكسور الذراع. كان الشاب يحمل في يده اليسري حجراً و يحجل بعزيمة يقشعر لها البدن للصفوف الأمامية للدفاع عند الميدان. المشهد الثاني لسيدة في منتصف العمر و هي تدخل الميدان في وسط المعمعة. قالت لنا هذه السيدة: أنا من الإخوان المسلمين، أنا زوجة و أم، أنا معكم في هذه المعركة و أسأل من الله الشهادة. قالت هذه الكلمات البسيطة بصدق نفذ إلي القلوب و جعلتني أبكي أنا و من معي. 
كنا معاً صفاً واحداً و للحظات ذابت الأشكال و الصور و انقشعت الأيدلوجيات و تجلت حقيقة ربانية  يصعب وصفها و ابتذالها في كلمات.
 كنت في ذهابي للميدان دائما أبحث في الوجوه و العيون عن من رأي هذه الحقيقة. كنت أبحث عن الثورة… و مازلت ابحث.

اليوم نجد حرباً جديدة من أعداء هذه الروح الوليدة. يريدون أن يشوهوا لحظة تاريخه  في أستحضارها أمل لوحدتنا. يدعون كذباً أن الإخوان المسلميين هم من قتل و ذبح في هذا اليوم و ينكرون عليهم دفاعهم و استبسالهم. إن وجدوا في الشعب أذن صاغية  لمثل هذه الأقاويل سنفقد مضمون الثورة و لن يكون هناك أي أمل لاقتفاء أثر هذه اللحظات الصادقة.
 
للأسف مهد الطريق لهذه الحرب قيادات الأخوان بعد أن باعدوا بين شبابهم و الثوار، بعد أن سعوا نحو مغانم زائفة سرعان ما سوف تتبدد. لقد دفع أعضاء الأخوان ثمن باهظ من دمائهم من اجل أن تصبح جماعتهم فصيل سياسي مقبول مجتمعيا و غير محظور. أراهم اليوم يبددون في الثورة كما بددوا في دماء شبابهم.

 بئس عاقبة الظالمين انفسهم.

04/9/11

عجز التفكير فى أحداث التحرير فى ليلة تسعة أبريل

.اشعر و يشعر كثيرون أن هناك شئ مثير للريبة فى الأحداث مؤلمة التى جرت ليلة تسعة أبريل

تساؤلات كثيرة تتصارع فى زهنى:

  1. كان المجلس العسكرى على دراية بأن هناك بعض الظباط ينوون الإعتصام فى التحرير، لماذا لم يتحرك؟ كان من الممكن التعامل مع الضباط الثائرين من داخل المؤسسة العسكرية أو على اقل التقدير على مداخل الميدان !!
  2. أغلب من كانوا فى التحرير كان سبب تواجدهم هو محاكمة مبارك و لكن تحول المشهد لمظاهرة فى الدفاع عن الضباط المعتصمين!!!
  3. لماذا طل علينا بعض “السلفيون” يحملون يافطات باللغة الإنجليزية مطالبين بالإفراج عن الشيخ عمر عبد الرحمن المسجون بالولايات المتحدة، و كأن هذا مطلب رئيسى للثورة؟
  4. فض إعتصام الضباط الثائرون كان متوقعاً، إذا لا تقبل أى مؤسسة عسكرية الإختلاف فى صفوفها و لكن: هل كان كل هذا العنف و التدمير و الإصابات و القتل ضرورى؟
  5. كان هناك تشتبت كبير بالأحداث الجارية فى غزة و كان البعض ملح فى طلب الجيش فى التدخل العسكرى فى هذا الشأن!!!

كل هذة التسؤلات و أكثر منهنا تبحث عن إجابة و لكن الشئ الوحيد الواضح هو وجوب التعامل الفورى مع الفاسدين و اولهم مبارك ثم أعوانه و تقديمهم إلى محاكمة عادلة بلا تباطؤ أو إستهانة بإرادة الشعب. البديل هو أنفراط عقد هذا الوطن و الفوضى.