Saturday, September 08, 2012

從77年開始有趣的房價歷史新聞

http://www.mobile01.com/topicdetail.php?f=356&t=2792199&r=2&last=38314716

這是從聯合報歷史資料庫看到的房價新聞,從77、78年間開始到81年間,新聞資料很多,無法詳細列舉,僅列出摘要供大家參考。

整體來說,房價約在79年產生變化開始明顯下跌,但並沒有崩跌,80、81年以後,也是逐步緩跌,但偶而還是會有高房價出現來測試買氣拉抬房價,買賣雙方就是不斷的拉鋸。

有趣的是,在民國77年,國民所得不高的情況下,竟然1坪也賣到40萬元,記得95年左右,在本波房地產沒起漲前,臺北市地區有許多預售案1坪開價還不到40萬元。

房價其實也是商品,會漲也會跌,沒有只會漲的神話,至於在漲跌之間,就看個人的能力,在適當的時間進入買房就好。


(文章太長且為避免違規,修剪一下,請見諒)
*************************************

**當時投資客與建商也是台北房價炒完以後,南下炒房。

77年5月11日的聯合晚報1版報導:

台北客南下炒地皮 高雄及台中也都有屢創新高的建案推出

*************************************

77年6月13日經濟日報7版報導:

台北市建案競爭 每坪逼近四十萬元

*************************************

台北縣的房價也屢創新高。

77年9月15日經濟日報7版報導:

大台北地區的房市上演撐竿跳﹗利多消息一波波 永和地區的房價也屢攀高峰

*************************************

當時許多人也被逼的去外地買房。

77年9月17日經濟日報7版報導:

不論台北市區﹑中永和地區﹑內湖等地﹐房價均居高不下﹐中產階級購屋只有往南或更偏遠的地方了﹗

*************************************

78年4月7日經濟日報18版報導:

房價打不死!買氣嚇不退﹗大台北地區十餘預售個案調高售價﹐照樣好賣

*************************************

到處都創新高啊。

78年5月7日經濟日報12版報導:

台北市南區房價創新天價 一樓店面每坪128萬元 

*************************************

78年仍預估79年房價會繼續上漲。

78年12月1日經濟日報18版報導:

79年房價上漲成份仍居多

*************************************

79年1月12日經濟日報報導:

大台北地區房價一年漲一倍,近三年來,北投區漲幅達五倍,大安區平均每坪單價47萬

*************************************

79年後房價開始反轉。

79年5月2日聯合晚報5版報導:

房市湧現低於市價3成行情


*************************************

79年5月7日聯合報5版報導:

五年來單月交易量最低紀錄 大台北預售屋上月只賣出100間

原因是賣主仍迷戀高價位時代 ,拚命開高,「有行無市」

*************************************

79年8月2日經濟日報18版報導:

上半年大台北房價明顯下滑 預售屋每坪降至廿六萬元以下 

*************************************

79年11月22日聯合晚報5版報導:

房市平均跌幅16% 大台北房市慘!三峽淡水掉4成,但前年(指77年)進場投資客,長期抱著還是贏

*************************************


80年時,淡水已經在炒捷運及跨海大橋的議題了。

80年3月11日聯合晚報5版報導:

淡水房市 跌幅達三成,未來要看捷運及跨海大橋的興建計畫

*************************************

房價雖有下跌,但建商還是會不斷推出高價房來測試買氣的底線。

80年4月3日聯合晚報5版報導:

房價見風轉舵又漲了 部分業者嚐了甜頭抬高售價 高房價的‘不合理’情況再現

*************************************

80年8月8日聯合晚報5版報導:

淡水房子在前幾年極盛時期曾經飆到1坪30萬元 現在預售價格只有15萬元

*************************************

三不五十還是會有高房價出現。

80年12月31日聯合晚報5版報導:

台北房價又上漲 台北縣預售屋已找不到5百萬以下的房子 台北市也出現45萬一坪高價位預售案

*************************************

81年2月9日聯合報13版報導:

台北市信義計畫區推出每坪五十萬 一戶四千萬的高價屋 買主不知在哪? 

*************************************

81年5月12日經濟日報19版報導:

因政策面打壓及房屋供給量過大 預售屋滯銷 建商將過寒冬並退場觀望


*************************************

81年5月13日聯合報11版報導:

利空一波波 房市慘淡淡 銷售率探底

原因是政府抑制房價措施不斷 行情已呈疲軟 央行調高重貼現率後 再雪上加霜

Wednesday, September 05, 2012

一人一半,才是(伴)

一人一半,才是(伴) 文╱王偉忠

陶子重義氣,她要我做什麼,我就做什麼。她要我談一談婚姻感情,就談吧!反正我也到了開口說話會帶點道理,但年輕人聽不進去的年齡。

我跟太太戀愛八年結婚,婚後十七年,總共認識了二十五年。這麼長的時間日夜相伴,身旁偶爾沒有她,感覺很爽,倘若此後一輩子沒有她,萬萬不可。

像前一陣子看到一則意見調查,問年輕女孩,家人、父母、孩子、老公與事業,如果硬要抉擇,會先放棄哪個?

女孩選了選,先放棄了事業,然後家人、父母,剩下老公與孩子難以抉擇,最後選擇放棄孩子、留下老公,理由是家人、父母、孩子最終都會離開身邊,但老公會是終身伴侶。很殘酷、但也很真實。

中國字的寓意深遠,「伴」,就是一人一半,湊在一起才完整。

現今許多人適婚卻不婚,老人家看了奇怪,過去從沒發生過類似狀況。這現象代表五、六十年來沒有戰亂、年輕人長大過程中享有家庭溫暖與親情支援,因此認為單 身也能過得很好,不論敗犬或是單身貴族,不覺得非要個伴,是歷史上首度可以一個人過日子的平安歲月。衰老未至,沒有歲月的壓力,等年齡到了,開始覺得孤 獨、害怕孤獨,想找個人分享,還是需要個伴。

若要進入婚姻,套一句不負責任的老生常談,要靠緣份,除了緣份以及感性的感覺,還要理性的選擇。婚姻確實需要理性,如果女兒論及婚嫁,我一定要求要看看對方家庭,什麼樣的家庭會養出什麼樣的孩子,當然,也有破碎家庭的孩子更努力維繫自己的幸福家庭,但一定要仔細觀察。

而另一個老生常談就是婚姻需要兩個人有相同的價值觀,但這不是說「我喜歡的你一定要喜歡」,而是「我不討厭你喜歡的」,就可以了,兩人可妥協,可退讓,願意試著接觸自己本來討厭的,看看是否真那麼不能接受,有這樣願意妥協的心情,比較容易維繫感情。

而婚姻與愛情最大的不同,在於願不願意改變。願意為了對方改變自己,是真愛,從頭到尾都不想改變自己,這段感情充其量只是對方愛你。

戀愛是短暫的交會後很想在一起而開始,很想閃的結束。開始時乾柴烈火,講究原汁原味,眼前的他什麼都好,是全天下最酷的、最美的,不需要改,但等到愛情疲了,才發現這人酷到不近人情、美得過於臭美、連刺青的位置不對,趕緊推給個性不合閃人。因此戀愛講究的是如何好聚好散

進入婚姻,當然還是會有許多衝突,學習重點是「相處的藝術」。男生該學的第一課就是上廁所必須掀馬桶蓋,一開始改變很不習慣,後來融入身體,像吃飯喝水一樣自然。

但最近老婆說不只要掀蓋子,尿完還希望我拿衛生紙擦擦馬桶周圍留下來的「遺跡」,按照過去的脾氣,一定就「老子愛….」,但現在的我會聽太太的意見,因為「愛」字裡有個心,不是光用腦想著該送什麼禮物給她,要用心。

太太也改變不少,她不喜歡戶外活動,婚前知道我愛潛水、跟著背起十幾公斤重的空氣瓶跳進海底求生,這麼愛美的她怕晒黑、塗防晒油塗滿臉,一回頭、嚇一跳,怎麼來了個歌仔戲花旦跟我一起玩。

婚後我又想潛水,她就說「不必了」,理由是家裡有孩子,不宜從事太危險的活動。

以前一個人在台北發展,要自己照顧自己,還要爭名奪利,不自私很難在短時間之內成就自己。結婚之後學著喊太太的媽媽「媽!」,有食物,不能先放進自己嘴 巴,要顧著妻小先吃。我開始懂得心疼與珍惜,因為太太很好,捨不得讓她不舒服、捨不得讓她傷心,這些捨不得讓我自然學會了讓、學會了愛,也自然的改變自 己,從自私變成大方。

婚姻的路是每天類似的風景,同樣的過程、淡淡的,要相處得好,真得靠慧根,所以找對象不能光想找個腿長奶大的辣妹,或是像金城武的帥哥,要找個讓自己想起他來心裡甜甜的,回頭一看,那人就在燈火闌珊處,這就是最好的對象。

而所謂另一半,也不是一開始就契合,是在修正中不斷的磨合,你多一點我少一點,像拼圖一樣拼在一起,才能一起過一輩子。

當然,歲月無情,人生最終還是分離。像我媽媽十六歲嫁給爸爸,相守相愛了一輩子,爸爸十多年前過世之後,媽媽真像少了一半,常凝望遠方,像爸爸就在天的那 一邊,令人感傷。但人生如果少了婚姻、少了隨之而來的酸甜苦辣生老病死,少了孩子延續家的價值與感情,真會少掉很多滋味。 

Wednesday, July 18, 2012

Virtualization tech


x86 Virtualization種類:

Friday, June 08, 2012

memory leak tool valgrind

memory leak tool valgrind
http://daydreamer.idv.tw/rewrite.php/read-18.html


Massif: a heap profiler

Friday, May 25, 2012

two nice gedit plugins for python

1.Class Browser 3g
  https://launchpad.net/gedit-classbrowser3g
use  Manual Install in README or you will get gedit crash

2.Gedit Developer Plugins

  • A collection of plugins
    • GDP Bazaar Integration: integrates bzr-gtk to show status, tags,
      • annotations, visualize, commit, merge, and push. Open files changed in
      • the branch.
    • GDP Find and Replace: Find and replace in multiple files. Open files and
      • jump to the line from the results pane. Directories and file types can be
      • specified. Regular expressions are supported.
    • GDP Format: Check and format text and code. Format paragraphs, lists, and
      • imports. Reformat test using regular expressions. Check the syntax and
      • style of Python, XML, HTML, CSS, and plain text. Check and reformat Python
      • doctests.
    • GDP Syntax Completer:
      • Use +space to activate the completer window
      • to see a list of matching words in the document (and other enabled completion plugins). Complete words in text, Python symbols from imports, xml/html tags


Sunday, May 13, 2012

Thursday, May 03, 2012

LiveCDCustomization


Why customize LiveCDs

You may wish to customise the Ubuntu Desktop LiveCd to:
  • make your own Linux / Ubuntu distribution
  • show off a particular application
  • localise to a certain language
  • remove software packages
  • add software packages
  • update software packages
  • change system defaults (theme, icons, desktop background, panels, browser homepage, etc)

How to Customise the Ubuntu Desktop CD

The easiest way to create a custom LiveCD is to use Ubuntu Customization Kit. What follows is the manual way of accomplishing the same.
You might also want to create a LiveCD from an existing installation; in this case,Remastersys is for you.
IconsPage/warning.png This guide is for the Desktop LiveCd; there is another page referring to customisation of the Alternative Install Cd & the Server Install Cd. Also, there is a guide on how to create a LiveCd without using an existing LiveCd.

System Requirements

  • At least 3-5 GB of free space
  • At least 512 MB RAM and 1 GB swap (recommended)
  • squashfs-tools
  • genisoimage, which provides mkisofs
  • An Ubuntu kernel with squashfs support (present in Ubuntu 6.06 and later)
  • QEMU/KVM, VirtualBox or VMware for testing (optional)
IconsPage/warning.png When customizing 9.10 Karmic Koala (or later) in an 9.04 Jaunty Jackalope (or earlier) environment, squashfs-tools must be updated to version 4.0. Conversely, the version of squashfs-tools in Ubuntu 9.10 is not compatible with earlier versions of Ubuntu.
IconsPage/warning.png The architecture (Amd64 or i386) to be stored on the LiveCD should be the same as the architecture used to perform the customization, or the LiveCD may not run. It is not trivial to customize an AMD64 LiveCD using an i386 operating system, for example.

Install pre-requisities

  • Make sure that you have installed the needed tools
sudo aptitude install squashfs-tools genisoimage

Obtain the base system

Note: the example shown here uses the ubuntu-9.04-desktop-i386.iso Desktop CD. Replace it with the name of your iso. For example, if you have a ubuntu-11.04-desktop-i386.iso image, the command:
mv ubuntu-9.04-desktop-i386.iso ~/livecdtmp
would be changed to:
mv ubuntu-11.04-desktop-i386.iso ~/livecdtmp
  • Move or copy it into an empty directory
mkdir ~/livecdtmp
mv ubuntu-9.04-desktop-i386.iso ~/livecdtmp
cd ~/livecdtmp

Extract the CD .iso contents

Mount the Desktop .iso
mkdir mnt
sudo mount -o loop ubuntu-9.04-desktop-i386.iso mnt
Extract .iso contents into dir 'extract-cd'
mkdir extract-cd
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

Extract the Desktop system

Extract the SquashFS filesystem
sudo unsquashfs mnt/casper/filesystem.squashfs
sudo mv squashfs-root edit

Prepare and chroot

If you need the network connection within chroot
sudo cp /etc/resolv.conf edit/etc/
Depending on your configuration, you may also need to copy the hosts file
sudo cp /etc/hosts edit/etc/
sudo mount --bind /dev/ edit/dev
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
(these mount important directories of your host system - if you later decide to delete the edit/ directory, then make sure to unmount before doing so, otherwise your host system will become unusable at least temporarily until reboot)
To avoid locale issues and in order to import GPG keys
export HOME=/root
export LC_ALL=C

Customizations

Apt-get

Prerequisites

In 9.10, before installing or upgrading packages you need to run
dbus-uuidgen > /var/lib/dbus/machine-id
and
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl

Tasks

To view installed packages by size
dpkg-query -W --showformat='${Installed-Size}\t${Package}\n' | sort -nr | less
When you want to remove packages remember to use purge
aptitude purge package-name

Custom Background for GNOME

Generally background files are located in /usr/share/backgrounds. Copy your png file there, adjust owner and file access, and edit the files:
  1. /usr/share/gnome-background-properties/ubuntu-wallpapers.xml and
  2. /usr/share/gconf/defaults/16_ubuntu-wallpapers or other files in the same directory. by changing the string/usr/share/backgrounds/warty-final-ubuntu.png to point to your file
Eventually change or add attributes to other configuration files such as: /var/lib/gconf/debian.defaults/%gconf-tree.xml or/etc/gconf/gconf.xml.defaults/%gconf-tree.xml).
Historical: More for Dapper...

Change gconf values (fonts, panels etc.)

To make any change on the gconf attributes you must add the value that you want in the file /etc/gconf/gconf.xml.defaults/%gconf-tree.xml. Adding a value in that file will change the default values of Gnome or other applications, so you can change fonts, backgrounds, themes, cursors etc.
Instead of editing the file with gedit or another text editor, you can use the gconftool-2, under the chroot environment, running the following line:
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set yourkey "yourvalue"
where stringyourkey and yourvalue must be the type, key and value that you want to change...

Making several gconf changes

Editing gconf by setting each value separately takes too much time. There is a better way:
Make a test user and adjust the settings as you wish. Run
gconftool-2 --dump /the/settings/branch/you/need > ~/live/your-new-settings.xml
sudo chown root:root ~/live/your-new-settings.xml
sudo mv ~/live/your-new-settings.xml ~/live/edit/your-new-settings.xml
and then, in the chroot environment, run
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --load /your-new-settings.xml
rm /your-new-settings.xml
This way you can import the whole branch, e.g. /apps/panel - all settings for Gnome's panels. Note that this way you import not only the keys, but also their descriptions, so all GConf descriptions will be changed to the language which was set for the test user, and there will be no way to safely change them back. Some programs (for example, keyboard shortcuts in Preferences menu) use descriptions from GConf.

Change default language of gfxboot

This customization must be done outside the chroot.
sudo aptitude install dpkg-dev uck
apt-get source gfxboot-theme-ubuntu gfxboot
cd gfxboot-theme-ubuntu*/
make DEFAULT_LANG=fi
sudo cp -af boot/* ../extract-cd/isolinux/
Change "fi" to your preferred locale. Note that this does not change which languages are available in the F2 menu. For more info about gfxboot customization, see Ubuntu Customization Kit.
  • A other way to change the default language of gfxboot without rebuild the packages is to create a file name lang in the isolinux directory containing your locale's name.

Customization limits

After customization make sure that there are no users with an UID > 999. Otherwise your image won't boot because no initial user is available (see /usr/share/initramfs-tools/scripts/casper-bottom/10adduser). While in chroot:
awk -F: '$3 > 999' /etc/passwd
If you get any hits, try changing the uid:
usermod -u 500 $hit

Miscellaneous Defaults

You may wish to edit the files in /etc/default to change system behavior at startup. You might also edit /etc/profile, /etc/bash.bashrc, and /etc/bash_completion to change login settings for all users on the system. You cannot directly edit defaults for the live cd user (e.g., casper,ubuntu, or user) since that account is created at boot time. You can directly edit root's default files (/root in the chroot environment).
If you wish to change the default timezone used by the live cd, run:
dpkg-reconfigure tzdata
If you have added a locale and wish to make it the default, update /etc/default/locale. You may have to compile the locale:
locale-gen new_locale
update-locale LANG=new_locale LANGUAGE=new_locale LC_ALL=new_locale
These changes must be made as root in the chroot environment.

Advanced Customizations

Live CD Kernel

If you want to customize further the boot process, you can change the livecd kernel, by copying the vmlinuz and initrd you want in place of the ones you find in extract-cd/casper.
i.e.
sudo cp edit/boot/vmlinuz-2.6.15-26-k7 extract-cd/casper/vmlinuz
sudo cp edit/boot/initrd.img-2.6.15-26-k7 extract-cd/casper/initrd.gz
Note that the initial ramdisk filename for newer releases (since 9.10) is casper/initrd.lz (not .gz).

Removing the (Casper) Autologin

The autologin feature of the Jaunty/9.04 live CD is a bit of an on-the-fly boot-hack. After extracting the initrd.gz, you need to edit the casper-bottom/25configure_init script and then recreate the initrd.gz file, replacing the original in extract-cd/casper. The process to do so goes like this:
# cd extract-cd/casper
# mkdir tempdir
# cd tempdir
# gunzip -dc ../initrd.gz | cpio -imvd --no-absolute-filenames
# cp scripts/casper-bottom/25configure_init scripts/casper-bottom/25configure_init.orig
# vi scripts/casper-bottom/25configure_init
Now look for line 25 which has the conditional statement to test $USERNAME.
Line 25 performs a conditional evaluation and if it evaluates to true, it will execute the code within the if block. The if block contains code to modify files used in the boot process to create the live cd autologin.
To disable the autologin feature, Remove $USERNAME, but just leave the quotes. The -n modifier tests the $USERNAME string to see if it's length is non-zero. By removing the variable, and leaving two double quotes, this statement evaluates to false because the two double quotes effectively make a zero-byte string. Be sure to leave no whitespace between the quotes because whitespace will make the evaluation true and execution wil fall into the if block.
21:log_begin_msg "$DESCRIPTION"
22:
23:# Arrange for shells on virtual consoles, rather than login prompts
24:
25:if [ -n "$USERNAME" ]; then
After making the change, line 25 will look like this:
25:if [ -n "" ]; then
Save the file and quit the editor. Then, from extract-cd/casper/tempdir run the following command to re-create the initrd.gz file. There are other methods for re-creating the initrd.gz file on this page which may work also.:
# cp ../initrd.gz ../initrd.gz.orig
# find . | cpio -o -H newc | gzip -9 > ../initrd.gz
This will create a new initrd.gz file with no auto login. You can then continue to remaster the CD as described on this page. Be sure to create a user and password to login with before you remaster the cd. If you do not, you will not be able to login after booting!
Also, I have read a few articles mentioning that Karmic (9.10) uses initrd.lz instead of initrd.gz. I do not know if this is true, but should mention it in case you are not getting the expected results. To unpack the initrd.lz file, you need to do this:
# cd extract-cd/casper
# mkdir lztempdir
# cd lztempdir
# lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames
And to re-create the initrd.lz file:
# cp ../initrd.lz ../inird.lz.orig
# find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../initrd.lz

Boot init

You have to edit the files in edit/usr/share/initramfs-tools/scripts/casper-bottom/* For example you can change the hostname or the livecd user.
i.e.
sudo nano edit/usr/share/initramfs-tools/scripts/casper
and edit the username or hostname
sudo nano edit/usr/share/initramfs-tools/scripts/casper-bottom/10adduser
to edit even the livecd user's password.
If you're customizing 10.04, you need to edit variables in /etc/casper.conf for the user and host names instead of modifying the scripts
P.S. in order to obtain an encrypted password, you have to use the mkpasswd program that's shipped with whois package!

Rebuilding initrd

After you've modified the kernel, init scripts or added new kernel modules, you need to rebuild the initrd.gz file and substitute it into the casper directory.
sudo chroot edit
mkinitramfs -o /initrd.gz 2.6.15-26-k7
(replace the kernel version with the one that the CD will boot with - this can be found in edit/lib/modules) *** do I need to mount proc, sys, devpts after chroot here ? Gordon
Exit from the chroot jail and move this file to extract-cd/casper:
exit
mv edit/initrd.gz extract-cd/casper/

Cleanup

Be sure to remove any temporary files which are no longer needed, as space on a CD is limited. A classic example is downloaded package files, which can be cleaned out using:
aptitude clean
Or delete temporary files
rm -rf /tmp/* ~/.bash_history
Or delete hosts file
rm /etc/hosts
Or nameserver settings
rm /etc/resolv.conf
If you installed software, be sure to run
rm /var/lib/dbus/machine-id
and
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
from within the chroot environment.
now umount (unmount) special filesystems and exit chroot
umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount edit/dev
  • Note: if "umount /proc" command fails, "umount -lf /proc" will be used to retry automatically.

Producing the CD image

Assembling the file system

Regenerate manifest
chmod +w extract-cd/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop
Compress filesystem
sudo rm extract-cd/casper/filesystem.squashfs
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -nolzma
  • Note: The -nolzma option is only available from Hardy , and was removed in Karmic. Also, the squashfs has to be generated using a version of mksquashfs that is compatible with the kernel used on the CD you are customizing. For example, you cannot generate a jaunty squashfs on karmic, as the jaunty kernel is not able to mount a squashfs prepared using mksquashfs from karmic.
For slightly higher compression at the cost of compression time, you can increase the block size:
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -b 1048576
Update the filesystem.size file, which is needed by the installer:
printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size
Set an image name in extract-cd/README.diskdefines
sudo vim extract-cd/README.diskdefines
(you can use "sudo nano extract-cd/README.diskdefines" if you have difficulties understanding vim)
Remove old md5sum.txt and calculate new md5 sums
cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt
Create the ISO image
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-9.04.1-desktop-i386-custom.iso .

Testing the CD

Test using qemu emulator
qemu -cdrom ubuntu-9.04.1-desktop-i386-custom.iso -boot d -m 512
Or if you have hardware acceleration for kvm
kvm -cdrom ubuntu-9.04.1-desktop-i386-custom.iso -boot d -m 512
You can also test with virtualbox-ose, which is free software and available in the Ubuntu universe repository.

Troubleshooting

Some experience problems virtualizing the iso after changing the livecd linux kernel. If you do, go click F6 when the boot screen is showing. Move the cursor between splash quiet and -- and write: all_generic_ide

Burning the image to CD

Simple! Just do
cdrecord dev=/dev/cdrom ubuntu-9.04-desktop-i386-custom.iso

Additional uses for the image

Comments

If you have any comments or questions, please feel free to add them here.
If you are answering a question, please rewrite the question into a tip that answers the question. (to help keep things to the point.)
New questions at the bottom (I guess.)

I have created an small Customization Example (named Firebird Live CD) by adding an firebird2.1-superand flamerobin packages (this apply to ubuntu Hardy Heron also it was tested with xubuntu 8.04) http://flamerobin.blogspot.com/2008/08/creating-flamerobinfirebird-livecd-with.html

Warning: qemu did not work for me as given in the guide above. Even the normal 8.04 live cd would not boot correctly. Every time, I would get thrown into the ash shell (busybox, initramfs) and while there, a "cat /casper.log" would reveal that it was "Unable to find a medium containing a live filesystem". Just use virtualbox-ose. It actually works with virtualbox. However, after using apt-get to install virtualbox-ose, I had to run "sudo depmod" again in order for the vboxdrv module to be found by modprobe. Hope that helps!

Warning: Squashfs is currently in development and is thus not finalized as a format. This means you cannot assume a filesystem.squashfs created using the Ubuntu 9.04 version of makesquashfs will be compatible with the squashfs drive an older live CD. I was customizing an Ubuntu 7.10 LiveCD and when testing it always booted it an (initramfs) prompt--the squashfs was not getting mounted as /. I had to build from within an Ubuntu 7.10 chroot to get it to work.
--Bob/Paul

I have created an small Customization Example (named Firebird Live CD) by adding an firebird-super-server and flamerobin packages (this apply to ubuntu dapper drake) http://flamerobin.blogspot.com/2006/05/creating-flamerobinfirebird-live-cd.html I created an updated guide with Ubuntu Festy Fawn also with an iso download for the Firebird/Flamerobin live cd http://flamerobin.blogspot.com/2007/09/creating-flamerobinfirebird-livecd-with.html

I have created tool for automatic remastering of live CD images. See http://uck.sourceforge.net/ .
Features:
  • GUI for simple creation of localized CDs (including changing gfxboot and installing language packs)
  • Script for customization of ISO, SquashFS and initrd on live CD.

http://www.atworkonline.it/~bibe/ubuntu/custom-livecd.htm seems to have some nice info. no license that I can see so we would need to ask permission from the author to us its material.

If you want to make the CD boot faster, you might try sorting the files so that they are in the CD in the order that they are accessed:http://lichota.net/%7Ekrzysiek/projects/kubuntu/dapper-livecd-optimization/

Great How To. I am having one issue however. I would like to use custom xorg.conf and sources.list files. Any tips on doing this? Thanks.
  • Simply, copy the files to edit/etc/ in the same way (and at the same time) that you copy in the resolv.conf and hosts files.
  • I have found that copying xorg.conf doesn't work, as the boot-time scripts overwrite it. Besides, you can't guarantee that a particular xorg.conf will run on all hosts. I'm currently trying to get the binary NVIDIA drivers to work out of the box if an NVIDIA card is present. If I figure out how to fix the xorg.conf, I'll post it here. --JeremyVisser

I've managed to get Synaptic running from within the chroot environment, but it does hang when I try to apply packages. What you do is run "Xnest -ac :1" to get an Xnest server to run on display :1 without access control so anyone can connect to it. Then, in the chroot environment, run "export DISPLAY=:1" to get programs to use the display. Then, type "metacity &" to be able to move windows. Finally, run "synaptic".
It works fine until you try to apply packages, where it hangs for me. --JeremyVisser

Shouldn't the mkinitramfs command use the casper scripts, like "mkinitramfs -o initrd.gz 2.6.15-23-386 -d /usr/share/initramfs-tools"?

There are tricks on how you can get to feel the GNOME system in your chroot environment.
1. Copy your xorg.conf in the chrooted "etc/X11/" directory.
cp /etc/X11/xorg.conf edit/etc/X11/
2. Create generic devices on your chroot system using MAKEDEV
cd /dev/
MAKEDEV generic
3. Start X or restart gdm
/etc/init.d/gdm start
Supposed you want to make modifications on the Desktop, that will be used by all the new users, just change your $HOME to /etc/skel/ and start gdm or X.
export HOME=/etc/skel/
If you want to load all the other stuff GNOME needs (i.e, dbus, avahi, network-manager), just boot as (single-user mode), and start dbus in your chrooted environment.
/etc/init.d/dbus start
An example of the whole procedure. (under single-user mode)
sudo /etc/init.d/networking restart
sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/X11/xorg.conf edit/etc/X11/
sudo chroot edit
mount -o none /proc
mount -o none /sys
export HOME=/etc/skel/
cd /dev/
MAKEDEV generic
/etc/init.d/dbus start
/etc/init.d/gdm start
--- joelbryan

Hello,
I am about to build a new Livecd and have a question: When I change the username, hostname and the user's password the user login automatically during booting the livesystem. But this is not desired. Is it correct, that I have to enter a password under a Desktop LiveCD when I delet the encrypted password in /usr/share/initramfs-tools/scripts/casper-bottom/10adduser ?
Thanks
Changing username and password will not change login behaviour, because this is done in /usr/share/initramfs-tools/scripts/casper-bottom/15autologin

Having trouble starting a MySQL server from within the chroot jail. Any suggestions?
- Dave
Hey,
I am trying to make a customized live cd of Kubuntu 6.06 that will be completly preconfigured, so that when the user clicks on the install icon on KDE the installer should do everything by itself, meaning that the installer should not ask any questions to the user.
To do this I am trying to write a preseed file to tell the installer the information that it needs.
The problem is that even with this preseed file I could only tell the installer what is the username that it should use, the rest of the information is simply ignored by the installer.
I must be doing something wrong and would appreciate any and all help given me.
Thanks, Komyg
PS: Should I post my preseed file here?

If the livecd is not going to be used for the purposes of installing what files can be removed? Can the "pool" files containing the .debs be removed too?
- Mike

If I want to put in my LiveCD applications that aren't in the sources.list (like ooffice 2.2 or perl audio converter), what cain I do?
- Isoldanne
When you're in the chroot you can install applications just like you would on a live system. If you install from source you can feel free to delete the source tarbal and make folders after you do 'make install'.
- Bob/Paul

To get desired /etc/X11/xorg.conf one can modify the /usr/bin/dexconfThis script generates xorg.conf automatically in liveCD sessionaccording to the booted machine.
For example:
# diff ~/bin/dexconf /usr/bin/dexconf
268,269c268
<       Option          "XkbLayout"     "us,il"
<       Option          "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
---
>       Option          "XkbLayout"     "$XKB_LAYOUT"
-- yotam

I cant do chroot. When i run it a get this error
chroot: cannot run command `/bin/bash': No such file or directory
Please help me out
  • I had the same problem because the filesystem that I was working on was FAT32 instead of EXT2 or EXT3. Because of that, /bin/bash was not an executable I guess. If that is your case also, then please try again on a partition that is EXT2 or EXT3 (the Linux type of partition). Good luck, --vvim

Hi, I've created a simple script to ease remastering the Kubuntu Live CD. It uses aufs to avoid copying all the files back and forth.
Maybe it will be usefull to others too. The script must be run as root.
CD="${1:-kubuntu-9.04-desktop-i386.iso}" ; shift
# exit after any error:
set -e

which mkisofs mksquashfs tempfile sed

WDIR=`mktemp -d $PWD/kubuntu-remastered.XXXXXXXXXX`
ISO="$WDIR/${CD##*/}"
ISO="${ISO%.iso}-remastered-KDM.iso"
EXIT=""
function addExit {
    EXIT="$@ ; $EXIT"
    trap "$EXIT" EXIT HUP TERM INT QUIT
}
function mnt {
    local margs="$1" ; shift
    local mp="$WDIR/$1"
    for D in "$@" ; do
        mkdir -v -p "$WDIR/$D"
    done
    mount -v $margs "$mp"
    addExit "umount -v $mp"
}

# mount the CD image
mnt "-t auto $CD -o loop,ro" cd

# mount compressed filesystem
mnt "-t squashfs $WDIR/cd/casper/filesystem.squashfs -o ro,loop" sq

# create joined writable filesystem for the new CD
mnt "-t aufs -o br:$WDIR/cd-w=rw:$WDIR/cd=ro none" cd-u cd-w

# create joined writable filesystem for the new compressed squashfs filesystem
mnt "-t aufs -o br:$WDIR/sq-w=rw:$WDIR/sq=ro none" sq-u sq-w

echo ">>> Updating CD content"

(
    cd sq-u

    # DO YOUR CUSTOMIZATION STUFF HERE, CHROOT, MODIFY FILES, ETC.
    # ...
    # ...

)

echo ">>> Compressing filesystem"
mksquashfs $WDIR/sq-u/ $WDIR/cd-u/casper/filesystem.squashfs -noappend

echo ">>> Recomputing MD5 sums"
( cd $WDIR/cd-u && find . -type f -not -name md5sum.txt -not -path '*/isolinux/*' -print0 | xargs -0 -- md5sum > md5sum.txt )

echo ">>> Creating ISO image $ISO"
mkisofs \
    -V "Custom KUbuntu Live CD" \
    -r -cache-inodes -J -l \
    -b isolinux/isolinux.bin \
    -c isolinux/boot.cat \
    -no-emul-boot -boot-load-size 4 -boot-info-table \
    -o "$ISO" \
    $WDIR/cd-u

# The trap ... callbacks will unmount everything.
--- Petr Pudlak

I need to know how to configure the live cd so that it does not use SWAP!
Please help me!
-- iceman

Hi, I've been experiencing problems with aptitude and I'm pretty sure its because I'm doing all this stuff on NTFS partition (according to this threadhttp://ubuntuforums.org/showthread.php?t=521905). But I have no other choice,coz' I've got less then 1,7GB on my ext3 partition. Any suggestion ? THX
Error messages I've been getting, when trying to install or update aptitude:
"E: Couldn't make mmap of 25165824 bytes - mmap (19 No such device) W: Unable to munmap E: The package lists or status file could not be parsed or opened."
-heethen (heethen at centrum dot cz)

I would suggest creating an ext3 filesystem within your NTFS partition. To create the file, type
dd if=/dev/zero of=/mnt/hda1/workspace.img bs=1024 count=$((1024*1024*15))
Where I assumed your NTFS partition was on hda1, and you wanted to call the new filesystem workspace.img (it's really just a file within NTFS), and that you wanted 15Gb of room to work. (You don't need that much, but with 15Gb you should have plenty of room.) Then you format the new filesystem with the command
sudo /sbin/mkfs.ext3 /mnt/hda1/workspace.img
then create a mountpoint
sudo mkdir /mnt/workspace
then mount the new filesystem
sudo mount -o loop /mnt/hda1/workspace.img /mnt/workspace
You can then use as much space on the NTFS partition as you want, and have all the benefits of ext3 (like getting the *** thing to work). --Tom

Editing gconf by setting each value separately takes too much time. There is a better way:
Make a test user and adjust the settings as you wish. Run
gconftool-2 --dump /the/settings/branch/you/need > ~/live/your-new-settings.xml
sudo chown root:root ~/live/your-new-settings.xml
sudo mv ~/live/your-new-settings.xml ~/live/edit/your-new-settings.xml
and then, in the chroot environment, run
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --load /your-new-settings.xml
rm /your-new-settings.xml
This way you can import the whole branch, e.g. /apps/panel - all settings for Gnome's panels.
---Jacob Popov ubuntu-9.04-desktop-i386.iso

Is there no way to copy the user's gconf-values to the default gconf-values in the chrooted environment? This would be a lot easier than writing commands.

It took me a long time to find the details for configuring a static IP on the live CD without doing it in the root file system. This enables you to create a few boot options with different static details and a DHCP on but all from the same rootfs.
There is a casper parameter which is in the form:
ip=IFACE,ADDRESS,NETMASK,GATEWAY[:IFACE,ADDRESS,NETMASK,GATEWAY]*
--silid


I think I have discovered how to do this:
1) Edit accordingly /usr/share/initramfs-tools/scripts/casper-bottom/23networking
2) Run update-initramfs -u -k $version
- Robert
In order to get the livecd to boot from a static address found in the /etc/network/interfaces file.
I edit the /etc/network/interfaces file and add a static address for the interface eth0.
auto eth0
iface eth0 inet static
address 10.xxx.xxx.xxx
netmask 255.255.255.0
gateway 10.xxx.xxx.1
edit somepath/isolinux/text.cfg add ip=frommedia after splash
label live
  menu label ^Try Ubuntu without any change to your computer
  kernel /casper/vmlinuz
  append  file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.gz quiet splash ip=frommedia --
This was a little hard to find. Thanks Robert Nicholas A. Schembi Pittsburgh PA USA

I've tried installing adobe flash player but while it installs fine on chroot, and then shows as installed when booting from CD. Firefox thinks it is not installed and I need to install it manually. Anybody come upon a similar problem

I tried to customize Ubuntu Hardy by installing the RT kernel and did the changes as written in the howto... it goes well, but booting in vbox is really slow. What could be the cause? I tried is once again and also in another vbox installation, but still that problem. Would be nice if someone can point me to an solution! thanks in advance see also thread: http://ubuntuforums.org/showthread.php?p=7334890#post7334890 edit: I think it has something to do with the fact that it is an RT kernel (from Hardy) ... Someone with experience with adding custom RT kernels?

I wrote a script to automate the extraction / chroot / regeneration processes: http://david.decotigny.fr/wiki/wakka.php?wiki=RemasterUbuntu . It has been tested on a jaunty x86_64 host for a jaunty i386 CD image.

To put the default user in the "video" group, 
printf "\nADD_EXTRA_GROUPS=1\nEXTRA_GROUPS="video"\n" >> /etc/adduser.conf 

In order to edit a Karmic LiveCD in any release prior to Karmic, it looks like you will need to upgrade squashfs-tools to support SquashFS v4.0:
root@maxwell:/home/Z_Custom# unsquashfs mnt/casper/filesystem.squashfs
Filesystem on mnt/casper/filesystem.squashfs is (4:0), which is a later filesystem version than I support!
I installed squashfs-tools_4.0-1 from the Karmic release into my Intrepid installation and it seems to be fine now. Maybe we should update these directions to reflect that?
Sincerely,
--John D. Zollo

Hi.. How can I add an a Post Installation script? I mean, I want to execute a script just after the installation process. THis script is simple and set a few things to customize the installation.
Any ideas?
Best Regards
-- Alejandro

Hallo, I'm trying to remaster ubuntu 9.10 livecd. I'm following instruction from this page. When I'm trying to boot from customized system it's seems I can't login to the system, so I can't got the system running.
I am following instruction from limitation part about user id. And make sure there are none of users has uid more then 999. But, after making the squashfs file system I got a message that told me about a user with uid 1000. Actually my host system has a user with uid 1000. I'm using this user to remaster ubuntu livecd.
Does my uid (1000) that I used for remastering the livecd make the new live cd can't login? If it does, how to fix it? Am I must use another user with uid less then 999 to remaster the livecd?
Best Regards
asw_te

Hello, what is the best way to remaster the Karmic release LiveCD (in VirtualBox) to include all the latest updates (more than 150) including new kernel and udev? The kernel changed from 2.6.31-14 to 2.6.31-16 and also udev.
apt-get autoremove removes the old headers, but I have to purge the old kernel manually (apt-get purge linux-image-2.6.31-14-generic).
The first problem is, update-initramfs -u -k all still runs for the old kernel, too. Only aptitude reinstall udev seems to stop this (depmod -a && dpkg --configure -a && dpkg-reconfigure udev does not help).
The second problem is, how do I prepare initrd and isolinux to run and install from a subdirectory (to create a multi-boot DVD)? The base of the DVD is Ubuntu, so / contains ubuntu-9.10-desktop-i386.iso, /kubuntu contains kubuntu-9.10-desktop-i386.iso and so on. Most things run fine when I introduce the prefix to scripts/casper and /isolinux/text.cfg:
LIVE_MEDIA_PATH=casper
$path/.disk/casper-uuid
append  file=/cdrom/preseed/kubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash --
becomes
LIVE_MEDIA_PATH=kubuntu/casper
$path/kubuntu/.disk/casper-uuid
append  file=/cdrom/kubuntu/preseed/kubuntu.seed boot=casper initrd=/kubuntu/casper/initrd.lz quiet splash --
But the prefixed distributions show only an Install Ubuntu 9.10 link on the desktop, not Kubuntu (Xubuntu, LUbuntu, ...).
Thanks, René Leonhardt

Hi!
I was hoping to be able to remaster the Ubuntu Live disc so that I can stick it into almost any computer, have it boot up but NOT go into the GUI, just auto login and run a media player with arguements (like a stream address). Was hoping to be able to make my own easy internet radio appliance. Give old pentium computers with soundcards to businesses and they can play my station on their PA for free!
-- Matt

I updated the Karmic Live CD with the latest updates inside chroot using aptitude with update, dist-upgrade, purge linux-image-2.6.31-14-generic, install zsh zsh-doc, install ubuntu-restricted-extras, and enabled DVD playback.
The resulting iso file turned out larger than a CD, and I put it on a USB Disk. The system boots fine, has the latest updates and can play restricted formats 'out of the box'. When I travel, I can just carry a USB Disk instead of a computer!
All releases including Ubuntu 9.10 Karmic Koala now have newer kernels available via updates. The kernel in the live CD *MUST* match the ones inside squashfs. If it does not, you get strange problems (like the wireless interface not being detected or CDs not being recognized)
i.e. for Karmic
sudo cp edit/boot/vmlinuz-2.6.31-16-generic extract-cd/casper/vmlinuz
sudo cp edit/boot/initrd.img-2.6.31-16-generic extract-cd/casper/initrd.gz
Since Karmic uses initrd.lz, I had to uncompress the .gz file and put it back in .lz format.
cd extract-cd/casper
sudo mv initrd.lz inird.lz.orig
gzip -dc initrd.gz | sudo lzma -7 > initrd.lz
cd ~/live
To conserve space, you can remove the original initrd files before changing the directory back
sudo rm -f inird.lz.orig initrd.gz
Best, Pradeep Sekar

I have a few questions, I am remastering a copy of 9.04 for a community school program i ran into a few problems
#1 how do you remove the option to update to 9.10 in the update manager #2 how do you get the CD to be recongnized in ubiquity installer as the named distro instead of ubuntu 9.04 (when i go to reinstall the softare still says it is a ubuntu 9.04 cd) #3how do you install a new kernel into the live cd and install part, i was able to upgrade it to 28.18 but when i try putting 31 on it ...it just wont boot.
#4 i have a repos server, i edit the sources.list but ubuntu repos are still the primary, how do i change that over?
#5 finally, i took out gnome games, and i want to add a list of eduacational games, but i want that as a optional install. (some computers won have game son there) is there a way to add the /.Games folder without actaully having data in it? i tried doing this in the chroot adn root menu and it still does not show up on install...
Thank you
ashlessburn

Can anyone tell me how I can take out the option of installing the Live CD at boot. I just want them to be able to use it, not install.
Thanks
--Steve

You can edit the boot options in extract-cd/isolinux/text.cfg Delete all lines and sub-lines of a label you don't like: For example you can delete:
label live-install
   menu label ^Install Ubuntu
   kernel /casper/vmlinuz
   append  file=/cdro...
-- jancelis

To remove the autologin, you make us work in the extract-cd directory. Does this mean that this process has to be the last one ? Do we have to do it after all the modifications on the edit directory ? Do we have to first create the new user in the chroot ? thx --lsga

I'm having trouble properly adding a repository. How do you add one to a live cd? --Muscovy

Hi, I'm working on a unnattended install CD using Ubuntu Lucid 10.04, and I found that if you erase /sbin/initctl the automatic install doesn't run. Also the instruction to generate the initctl using dpkg-divert is not working. So be careful...
Alejandro

I customize the live cd and install apache2 , webmin ,,, but how to make it start after the automatic-login ?
Gordon

I use a version of Ubuntu that does not automatically Start the graphical system (startx command) How can I add that to be run at boot?
RJ

I am currently working on a minor update given 10.10 is out. Unfortunately, I got held up and now time has run out. Mainly I wanted to make the scripts more copy/paste friendly. So I added a few env-variables and use those throughout the script. I've done the replacements already, but I didn't get aroud to do some testing.
In the meantime, I'll dump my current version into the above link to save my work.
exhuma

aptitude can't purge packages.
The program 'aptitude' can be found in the following packages:
  • aptitude
  • aptitude-gtk (You will have to enable component called 'universe')
Try: apt-get install

Unable to find a medium containing a live file system (SOLUTION)
When creating a live-usb with Unetbootin from Windows (Vista/7) you sometimes get this error. A friend of mine suggested another solution than all of the above. Create the USB stick with Unetbootin from a Linux (Ubuntu) box and NOT a windows system. Apparently something is different between the two because now my system just boots flawlessly!
SantanaNL

Regarding the "Unable to find a medium containing a live file system"--
I had this same problem when trying to install Ubuntu 10.04, 10.10, and 10.10 netbook edition on a netbook using a USB stick. I tried creating all three using 10.10's boot disk creator, 11.04's boot disk creator, Unetbootin on 11.04, and Unetbootin on Windows 7. In all cases, I was able to make it to the usb boot menu and would select 'Install'. The Ubuntu logo would show that it was processing for a while and then fail with the above message in a terminal.
In the end, it wasn't a problem with the iso or the created USB stick. The USB drive just wasn't mounted (or would become unmounted after I tell it to go through the 'Install' procedure. Since I couldn't figure out how to boot the usb from the provided terminal, I just tried removing and reinserting the USB drive once I saw the Ubuntu logo and the progress blips.
I was able to get past this problem twice, so far, with this solution.
bananax182

For all of you semi new maybe not quite as knowledgeable Ubuntu users, as myself, the live CD environment does not utilize all of the typical repositories that it would as if you installed it. You might need to add the particular repository of interest to install a program for your live CD.
For instance, I wanted to create a live CD with dcfldd on it. I had to edit etc/apt/sources.list within the chrooted environment to add the universe repository. I uncommented the following to lines in etc/apt/sources.list to install dcfldd:
deb http://archive.ubuntu.com/ubuntu natty universe
deb-src http://archive.ubuntu.com/ubuntu natty universe
Then just updated apt and installed as normal:
apt-get update
apt-get install dcfldd
Sorry if everyone already knew this. I just figured it may be helpful to users like myself.
mrgrant

Hi Smile :) I'm sure people appreciate comments such as your MrGrant. Otherwise people might feel they are the only ones suffering from something or maybe feel they are to blame. 
On a normal LiveCd there is an "installer" icon. DOes anyone know how i can get that icon onto a normal Ubuntu desktop? I have done a full install to a large usb-stick and installed things like "GPartEd" but i definitely miss havign that installer icon & functionality. Regards from Tom Smile :)

I am looking to update or see an update to this guide that addresses a custom launcher on unity. So the idea is once the desktop and unity have resolved to the scree, I can click on a custom launcher with out looking in dash to find it. This message should be replaced with this information, in case someone else beats me to the punch.
Chad

I am a total beginner. How do I take my current computer configuration and turn it into a install CD? Thanks!
Nick Smile :) (Sorry if my question sounds dumb)

Hi Nick :)
This link might help
but i would avoid it. It's not dumb, just tricky. 
Instead you can back-up all your settings, config files/folders and data by backing up the /home folder. You can move your /home to a new partition to separate your data (including configs and stuff) from the Operating System. That allows you to re-install the OS without messing anything up
It's even possible to have 2 different Operating Systems sharing the same /home although it's not recommended.
Better places to ask questions are 
and Launchpad
Regards from
Tom Smile :)

I think this entry could be improved by adding some explanation of what we are trying to accomplish with these commands. Pretty much any time it says "you need to use" or "remember to" it would be great to know why. Just my two cents.
Mike