Instalasi RedHat Linux Via Network

Kalau biasanya saya menginstal Linux dengan cara booting dari CD media instalasinya, kali ini saya mencoba menginstal Linux dengan cara booting dari network. Caranya saya harus  membuat sebuah server yang menyediakan media booting bagi PC lain yang terhubung dengannya. Di lingkungan Linux (dalam hal ini saya pakai Red Hat Linux) ada mekanisme Kickstart Installation.

Lewat Google saya menemukan link tentang instalasi Linux lewat network, berikut adalah panduan yang saya pakai selama utak-atik :

http://www.stanford.edu/~alfw/PXE-Kickstart/PXE-Kickstart.html#toc12

Prinsip bodoh-bodohannya bagaimana mekanisme kickstart adalah seperti ini :

“………….PC yang akan diinstal “dipaksa” untuk booting via network, dia akan mencari DHCP server yang menyediakan alamat IP. Kickstart server diatur supaya bila ada request dari PC tersebut (dia tahu dari MAC address si PC), server akan merespon dengan memberikan alamat IP tertentu. Ok setelah PC mendapat IP, dia akan mencoba menggunakan boot media yang ada pada kickstart server. Proses ini menggunakan protokol TFTP. Setelah boot media berhasil digunakan oleh PC, PC akan mencari bahan-bahan instalasi. Bahan-bahan instalasi ini akan disediakan oleh kickstart server melalui sharing NFS. Selanjutnya proses instalasi akan berjalan otomatis karena di dalam kickstart server sudah disediakan pula aturan-aturan instalasi (bagaimana partisi harddisk, apa passwordnya, aplikasi apa yang perlu diinstal, dsb)………..”

Ada beberapa hal yang perlu saya jelaskan sebelum menuliskan langkah-langkah instalasinya :

  1. Semua konfigurasi ini dijalankan oleh user root.
  2. PC yang akan dipakai sebagai installation server menggunakan sistem operasi Red Hat Linux 5.1. Untuk selanjutnya sebut saja server ini sebagai kickstart-server.
  3. PC kosong yang perlu diinstal selanjutnya kita sebut kickstart-client.

Langkah-langkah yang harus saya lakukan pada kickstart-server adalah seperti berikut ini :

1. Mount DVD Red Hat Linux (saya  pilih Red Hat Linux Enterprise). Pada contoh ini saya menggunakan file ISO image RHEL 5.1

[root@aptserver ~]# mount -o loop /home/tedy/RHEL_5-1.iso /media/iso
mount: /home/tedy/RHEL_5-1.iso already mounted on /media/iso

2. Buat sebuah direktori baru yang akan menyimpan media instalasi. Selanjutnya kita sebut direktori ini sebagai direktori-kickstart.

[root@aptserver ~]# mkdir -p /export/cdrom

3. Salin isi DVD RHEL ke dalam  direktori-kickstart, kali ini saya menggunakan rsync :

[root@aptserver ~]# rsync -rtv /media/iso/ /export/cdrom/
building file list ... done
./
.discinfo
EULA
GPL
README-as.html
README-bn.html
README-de.html
..............
..............
..............
isolinux/rescue.msg
isolinux/splash.lss
isolinux/vmlinuz

sent 2987057878 bytes  received 52700 bytes  11083898.25 bytes/sec
total size is 2986502132  speedup is 1.00

4. Share  direktori-kickstart dengan menggunakan NFS. Caranya adalah dengan mendaftarkan direktori tersebut ke dalam file  /etc/exports seperti pada contoh berikut ini :

[root@aptserver cdrom]# cat /etc/exports
/export/cdrom/      192.168.1.20/255.255.255.0 (ro)
[root@aptserver cdrom]#

Kita juga mengatur komputer mana saja yang boleh mengakses NFS share direktori tersebut. Pada contoh di atas, yang boleh mengakses hanyalah komputer dengan alamat IP 192.168.1.20. Oh ya, client hanya boleh mengakses direktori tersebut secara read only. Setelah konfigurasi selesai baru kita mulai menjalankan service NFS server seperti berikut ini :

[root@aptserver cdrom]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
[root@aptserver cdrom]# service nfs status
rpc.mountd (pid 2460) is running...
[root@aptserver cdrom]# showmount -e
Export list for aptserver:
/export/cdrom 192.168.1.20/255.255.255.0

5. kickstart-client akan mencari media boot yang tersedia di jaringan melalui protokol TFTP (trivial file transfer protocol). Buat sebuah direktori baru yang akan berfungsi sebagai boot directory, selanjutnya kita sebut direktori-TFTP.

[root@aptserver ~]# mkdir /tftpboot/
[root@aptserver ~]# mkdir /tftpboot/pxelinux.cfg/

6. Copy kernel image ke dalam direktori-TFTP :

[root@aptserver ~]# cp /export/cdrom/images/pxeboot/initrd.img /tftpboot
[root@aptserver ~]# cp /export/cdrom/images/pxeboot/vmlinuz /tftpboot

7. Copy file pxelinux.0 ke dalam direktori TFTP. File pxelinux.0 dapat diambil di dalam direktori-kickstart atau bisa juga diambil di dalam /usr/lib/syslinux/  :

[root@aptserver ~]# cp /export/cdrom/syslinux-3.73/core/pxelinux.0 /tftpboot/

8. Buat kickstart profile di dalam direktori-TFTP.  Contohnya seperti berikut ini :

[root@aptserver ~]# cat /tftpboot/pxelinux.cfg/default.netks-7.2
default linux
serial 0,9600n8
label linux ks=192.168.1.5:/export/cdrom/
kernel vmlinuz
append ksdevice=eth0 console=ttyS0,38400 console=tty0 load_ramdisk=1 initrd=initrd.img
network ks=nfs:192.168.1.5:/export/cdrom/ks.cfg
[root@aptserver ~]#

9. Buat softlink dari kickstart profile tadi. Pada contoh di bawah ini, link yang dibuat adalah  C0A80114. Kombinasi itu berasal dari alamat IP 192.168.1.20 yang diubah ke dalam bentuk hexadecimal : 192 -> C0, 168 -> A8, 1 -> 01, 20 -> 14. IP ini adalah alamat IP yang akan dipakai oleh  kickstart-client, akan dibahas di langkah selanjutnya.

[root@aptserver pxelinux.cfg]# ln -s default.netks-7.2 C0A80114
[root@aptserver pxelinux.cfg]# ls -lh
total 8.0K
lrwxrwxrwx 1 root root  17 Jan 31 04:30 C0A80114 -> default.netks-7.2
-rw-r--r-- 1 root root  38 Jan 31 02:04 default
-rw-r--r-- 1 root root 222 Jan 31 05:01 default.netks-7.2

10. Tahap berikutnya adalah menginstal TFTP server . Pada contoh ini saya menggunakan atftpd sebagai TFTP server. Oh ya karena paket atftpd tidak tersedia di dalam DVD instalasi Red Hat, jadi saya harus download dulu.

[root@aptserver ~]# wget http://www.silfreed.net/download/repo/packages/atftp/atftp-0.7-5.fc8.i386.rpm
--04:18:14--  http://www.silfreed.net/download/repo/packages/atftp/atftp-0.7-5.fc8.i386.rpm
Resolving www.silfreed.net... 66.59.109.136, 2002:423b:6d88::1
Connecting to www.silfreed.net|66.59.109.136|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 83279 (81K) [application/x-rpm]
Saving to: `atftp-0.7-5.fc8.i386.rpm'

100%[====================================================================================>] 83,279   28.0K/s   in 2.9s

04:18:18 (28.0 KB/s) - `atftp-0.7-5.fc8.i386.rpm' saved [83279/83279]

[root@aptserver ~]# rpm -i atftp-0.7-5.fc8.i386.rpm
warning: atftp-0.7-5.fc8.i386.rpm: Header V3 DSA signature: NOKEY, key ID ed00d312
error reading information on service atftp: No such file or directory
error: %post(atftp-0.7-5.fc8.i386) scriptlet failed, exit status 1
[root@aptserver ~]#
[root@aptserver ~]# rpm -ivh atftp-0.7-5.fc8.i386.rpm
warning: atftp-0.7-5.fc8.i386.rpm: Header V3 DSA signature: NOKEY, key ID ed00d312
Preparing...                ########################################### [100%]
package atftp-0.7-5.fc8 is already installed
[root@aptserver ~]#

11. Setelah TFTP server terinstal, yang harus dilakukan adalah melakukan konfigurasi seperti berikut ini :

[root@aptserver ~]# /usr/sbin/atftpd --daemon --no-multicast --group nobody --tftpd-timeout 0 -m 1000 /tftpboot/

Dengan perintah di atas, kita memberitahu TFTP server untuk menggunakan /tftpboot/ sebagai direktori TFTP.

12. Saat mulai proses booting dari network, kickstart-client akan meminta alamat IP dari kickstart-server. Oleh karenanya, selain menjalankan TFTP server,  kickstart-server juga berfungsi sebagai DHCP server. Untuk menjalankan servis DHCP di Red Hat Linux, kita harus mengatur file /etc/dhcpd.conf terlebih dulu. Lihat contohnya sebagai berikut :

[root@aptserver Server]# cat /etc/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#
ddns-update-style interim;
ignore client-updates;
default-lease-time 600;
max-lease-time 7200;
deny unknown-clients;
not authoritative;
option domain-name "tedytirta.com";
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
allow bootp;
allow booting;
subnet 192.168.1.0 netmask 255.255.25.0 {
range 	192.168.1.18 192.168.1.21;
option routers		192.168.1.1;
option subnet-mask	255.255.255.0;
}
group {
next-server 192.168.1.5;
filename "gpxelinux.0";
host JumpstartClient {
hardware ethernet 08:00:27:E4:57:BB;
fixed-address 192.168.1.20;
}
}
[root@aptserver Server]#

Di dalam file/etc/dhcpd.conf kita mendaftarkan MAC address dari kickstart-client supaya bisa memperoleh IP address. Selain itu pada contoh di atas, saya juga mendefinisikan bahwa kickstart-client akan menggunakan alamat IP 192.168.1.20. Setelah file /etc/dhcpd.conf selesai diatur, baru kita bisa menjalankan DHCP server seperti terlihat pada contoh berikut ini :

[root@aptserver Server]# service dhcpd start
Starting dhcpd:                                            [  OK  ]
[root@aptserver Server]#

13. Langkah terakhir adalah membuat sebuah file konfigurasi. File ini mendeskripsikan proses instalasi yang harus dijalankan oleh kickstart-client (bagaimana partisi harddisk, apa password rootnya, aplikasi apa yang perlu diinstal, alamat IP yang harus dipakai, dsb). File ini disimpan di dalam  direktori-kickstart. Dengan adanya file ini tidak perlu lagi ada intervensi user pada saat instalasi, kita cukup boot kickstart-client lewat network dan tunggu sampai instalasi selesai. Makanya penting sekali mengatur file ini, file ini mendeskripsikan segala detail proses instalasi. Lihat contohnya berikut ini :

[root@aptserver cdrom]# cat /export/cdrom/ks.cfg
# Kickstart file automatically generated by anaconda.
install
text
nfs --server 192.168.1.5 --dir /export/cdrom
key --skip
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto=static --ip=192.168.1.231 --netmask=255.255.255.0 --gateway=192.168.1.1
rootpw --iscrypted $1$.dZrkeXj$CLB4rgZWpI7bzX5W5NINS/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
reboot
selinux --enforcing
timezone --utc Asia/Jakarta
bootloader --location=mbr --driveorder=hda --append="acpi=off rhgb quiet"
clearpart --all --drives=hda --initlabel
part /boot --fstype ext3 --size=100 --ondisk=hda --asprimary
part / --fstype ext3 --size=1024 --grow --ondisk=hda --asprimary
part swap --size=128 --grow --size=256 --ondisk=hda --asprimary
%packages
@mysql
@editors
@system-tools
@text-internet
@legacy-network-server
@dns-server
@dialup
@core
@base
@ftp-server
@network-server
@java
@smb-server
@base-x
@kde-desktop
@development-libs
@web-server
@printing
@mail-server
@server-cfg
@sql-server
@admin-tools
@development-tools
@graphical-internet
audit
kexec-tools
bridge-utils
device-mapper-multipath
dnsmasq
vnc-server
#xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
-compiz-kde
-knetworkmanager
-amarok
imake
-sysreport
mc
festival
libgnome-java
libgtk-java
libgconf-java
kexec-tools
%post
useradd -d /home/tedy -m -p tedy123 tedy
mv /etc/motd /etc/motd.orig
echo "" >> /etc/motd
echo "========================================" >> /etc/motd
echo " Kickstart Client Server" >> /etc/motd
echo "========================================" >> /etc/motd
echo "" >> /etc/motd
[root@aptserver cdrom]#

Pada contoh di atas, password root yang saya pakai dalam bentuk terenkripsi. Supaya mudah, saya salin saja password kickstart-server (lihat dari file  /etc/passwd ).

Ok sampai di sini semua konfigurasi kickstart-server sudah selesai. Tinggal tes, lihat hasil yang saya dapat :

Dalam contoh ini  kickstart-client yang saya pakai adalah sebuah virtul mesin (dibuat dengan Sun VirtualBox). Saya masuk BIOSnya lalu saya set supaya boot via network. Dan lihat proses instalasi berjalan otomatis sampai selesai. Saya tinggal tunggu sampai muncul halaman login…..ah senangnya 😀 Proses ini berguna sekali kalau ingin menginstal Linux ke dalam beberapa PC sekaligus.

Wah ternyata tulisan ini panjang sekali, lega juga bisa selesai menulisnya di blog ini. Padahal sudah lama juga saya melakukan tes instalasi kickstart. Ok sekarang saatnya berangkat ke kantor :-p

Akumulasi Tidur

Satu minggu kemarin saya selalu merasa kurang tidur. Sabtu malam kemarin saya balas semua akumulasi kekurangan tidur saya. Saya tidur dari sekitar jam 7 malam, pagi ini saya bangun hampir jam 7 pagi. Badan terasa lebih segar, keluar kamar segar suasana juga lebih segar….gerimis 😀

Ah tidak terasa sudah bulan Maret, selamat bulan baru bagi Anda semua 😀 Bulan baru, semangat baru, postingan-postingan baru (I hope.. :-p ). Lalu apa hubungannya dengan foto pantai di atas? Ya gak ada hubungan apa-apa, biar menarik aja postingannya :))

***tulisan ga mutu, pendek kali ya ;)) ***

Serial Console Linux

Di kamar saya ada PC server milik rekan saya yang belum selesai diutak-atik. Sayangnya tidak ada monitor yang bisa dipakai. Biasanya saya mengakses PC server tersebut lewat network dengan koneksi SSH. Oh ya PC server ini berisikan Red Hat Linux Enterprise 5.1. Tanpa monitor saya tidak bisa melihat tampilan yang keluar saat proses booting maupun proses shutdown berlangsung. Iseng saya ingin mencoba menampilkan output-nya melalui port serial. Inginnya console yang biasanya ditampilkan ke monitor saya arahkan ke serial port, mirip-mirip yang biasa dipakai di server-server beneran 😀 . Mencari tahu di Google saya menemukan referensi yang tepat di sini :

http://www.vanemery.com/Linux/Serial/serial-console.html

Segera saja saya coba mengarahkan console-nya Red Hat ke port serial. Dari serial port PC tadi saya sambungkan dengan notebook menggunakan kabel serial (kali ini saya pakai kabel rollover-nya Cisco), seperti in fotonya :

Langkah-langkah yang harus saya jalankan sesuai tutorial yang ada di web tersebut adalah sebagai berikut :

1. Mengidentifikasi port serial yang ada pada motherboard dengan perintah seperti berikut ini :

[root@aptserver ~]# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
0000:00:09.0: ttyS1 at I/O 0xc008 (irq = 5) is a 16450
0000:00:09.0: ttyS2 at I/O 0xc010 (irq = 5) is a 8250
0000:00:09.0: ttyS3 at I/O 0xc018 (irq = 5) is a 16450

2. Mengaktifkan port serial supaya bisa dikenali oleh sistem operasi :

[root@aptserver ~]# setserial -g /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

3. Memodifikasi file /etc/inittab supaya memperbolehkan user untuk login lewat console :

[root@aptserver ~]# cp /etc/inittab /etc/inittab.orig
[root@aptserver ~]# vi /etc/inittab
#tambahkan baris berikut ini di dalam /etc/inittab
s0:2345:respawn:/sbin/agetty -L -f /etc/issueserial 9600 ttyS0 vt100
[root@aptserver ~]# init q
[root@aptserver ~]# pkill agetty

4. Memodifikasi /etc/securetty supaya root bisa login lewat console :

[root@aptserver ~]# echo "ttyS0" >> /etc/securetty

5. Mengatur GRUB supaya menampilkan console tidak lagi ke monitor tapi ke port serial (tambahkan opsi console=ttyS0,9600):

[root@aptserver ~]# cp /boot/grub/grub.conf /boot/grub/grub.conf.orig
[root@aptserver ~]# vi /boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-53.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet acpi=off apm=on apm=power-off console=ttyS0,9600
initrd /boot/initrd-2.6.18-53.el5.img
[root@aptserver ~]#

6. Mematikan aplikasi kudzu supaya tidak memeriksa perubahan default console dari VGA ke port serial :

[root@aptserver ~]# chkconfig kudzu off

7. Reboot PC :

[root@aptserver ~]# shutdown -h now

Kira-kira seperti itu langkah-langkah konfigurasinya. Setelah reboot, PC akan menampilkan console-nya melalui port serial. Untuk mengaksesnya saya bisa menggunakan aplikasi Hyperterminal (kalau notebook saya menggunakan Windows). Dalam hal ini notebook saya berisi Ubuntu, sehingga saya harus memilih aplikasi yang bisa mengakses terminal serial. Yang umum dipakai orang adalah aplikasi  minicom tapi saya menemukan aplikasi lain yang mirip, namanya cu. Aplikasi ini tersedia di kumpulan DVD repositori Ubuntu 8.10, saya tinggal menginstalnya dengan perintah :

tedy@tedy-laptop:~$ sudo apt-get install cu

Untuk menggunakan aplikasi  cu format perintahnya seperti berikut ini :

tedy@tedy-laptop:/media/disk-1$ cu -l (serial_port) -s (baud_rate)

Karena notebook saya tidak memiliki port serial, maka saya menggunakan USB to serial adapter untuk menghubungkan kabel serial dari PC ke notebook. Fotonya seperti berikut ini :

Adapter tersebut dikenali oleh Ubuntu sebagai /dev/ttyUSB0 sehingga perintah yang saya pakai untuk mengakses console Red Hat adalah seperti berikut ini :

tedy@tedy-laptop:/media/disk-1$ cu -l /dev/ttyUSB0 -s 9600
Connected.

Red Hat nash version 5.1.19.6 starting
INIT: /etc/inittab[53]: duplicate ID field "s0"
Welcome to Red Hat Enterprise Linux Server
Press 'I' to enter interactive startup.
Setting clock  (utc): Fri Jan 30 09:29:11 WIT 2009 [  OK  ]
Starting udev: [  OK  ]
Loading default keymap (us): [  OK  ]
Setting hostname aptserver:  [  OK  ]
No devices found
Setting up Logical Volume Management:   /dev/cdrom: open failed: No medium found

Lihat pada contoh di atas saya bisa melihat proses booting yang sedang berlangsung di PC tersebut. Berikut screenshot-nya supaya lebih yakin 😀 :

Tentang Rdesktop

Sehari-hari sekarang saya bekerja dengan notebook S6410 milik kantor. Notebook ini diisi oleh Ubuntu 8.10 yang cukup bersahabat selama saya pakai untuk bekerja. Di kamar saya juga punya Lenovo Ideapad S9 yang saya pasangi Windows XP. Kadang lelah juga mata saya kalau menggunakan Lenovo karena layarnya yang cuma selebar 9″. Saya akali saja kelelahan mata ini dengan mengakses Windows dari Fujitsu S6410. Setelah mencari info lewat Google saya jadi tahu ada aplikasi di lingkungan Linux yaitu rdesktop. Aplikasi ini sama fungsinya seperti Windows Remote Desktop, yaitu mengakses desktop Windows dari remote computer. Aplikasi rdesktop memungkinkan pengguna Linux untuk mengakses Windows dari mesin Linuxnya.

Lihat screenshot-nya di bawah ini, ini adalah tampilan Windows yang berjalan di Lenovo. Jadi asyik bisa menggunakan Windows yang ada di S9 dengan tampilan layar lebih besar dari ukuran aslinya.

Apliakasi rdesktop ini tersedia bebas di Internet, iseng mencari di kumpulan repository Ubuntu 8.10 ternyata ada di sana. Saya tinggal menginstalnya dari DVD repositori tanpa harus men-download-nya lagi dari Internet. Instalasinya cukup mudah, seperti biasa tinggal jalankan saja perintah apt-get install seperti berikut ini :

tedy@tedy-laptop:~$ sudo apt-get install rdesktop

Untuk mengakses Windows desktop saya cukup menjalankan perintah berikut ini :

tedy@tedy-laptop:~$ rdesktop 192.168.1.13

Cukup mudah, tinggal sebutkan saja alamat IP Windows yang sedang berjalan di Lenovo. Perintah di atas dapat diperlengkapi dengan beberapa opsi menjadi seperti berikut ini :

tedy@tedy-laptop:~$ rdesktop -u "Tedy Tirtawidjaja" -p password -g 1280x700 192.168.1.13

Beberapa opsi yang dapat ditambahkan dalam perintah rdesktop ini adalah :

  •  -u : username Windows
  • -p : password Windows
  • -g : besar resolusi layar yang diinginkan
  • -r sound:local : opsi ini dipakai untuk “menarik” suara dari remote ke local computer. Pada kasus saya suara akan tetap keluar di speaker-nya Lenovo. Dengan opsi ini saya bisa memaksa supaya Windows mengeluarkan suaranya lewat Ubuntu di Fujitsu S6410.

Dengan aplikasi ini saya jadi bisa menggunakan Windows & Ubuntu secara bersamaan tanpa harus berpindah-pindah notebook. Oh ya sama halnya dengan Windows Remote Desktop, saat saya mengambil alih desktop Windows dari Ubuntu maka tampilan desktop di layar Lenovo S9 langsung terkunci. Jadi dalam satu waktu hanya ada 1 desktop yang aktif. Sebaliknya saat saya kembali login di Lenovo, maka session rdesktop di Ubuntu langsung berakhir secara otomatis.

Baby’s Expression

Waktu pulang ke Cirebon Imlek lalu, saya sempat mengambil banyak foto keponakan saya yang masih bayi. Masih niat memotret dengan EOS1000D, bagus juga untuk latihan motret. Tidak gampang memotret anak kecil karena dia selalu aktif bergerak, mau tidak mau saya manfaatkan saja fitur Auto kamera DSLR saya, daripada kehilangan momen lucu si bayi. Memotret di dalam ruangan juga sedikit merepotkan, tidak mungkin kalau saya mengambil foto tanpa flash. Tanpa lampu kilat tapi menaikkan ISO sampai 1600 pun tidak banyak membantu. Ya sudah saya serahkan saja urusan settingan kamera pada menu Auto, biar saya bisa konsen mencari momen si bayi. Bayi memang selalu punya banyak ekspresi lucu yang bisa diabadikan. Oh iya bayi dalam foto-foto ini namanya Darrel, umurnya baru 8 bulan (kalo gak salah inget 😀 )

Belakangan saya baru tahu kalau bapaknya bayi ini tidak senang saya terus-menerus memotret anaknya dengan flash. Katanya dia kuatir mata anaknya bermasalah karena terlalu sering terkena lampu kilat. Ah apa iya ya bahaya memotret bayi dengan sorotan flash? Saya cari di Google tentang masalah ini tapi belum menemukan referensi yang bersifat ilmiah. Rata-rata tulisan di forum hanya seputar rekomendasi dan perkiran-perkiraan, rata-rata mereka menyarankan untuk tidak menggunakan lampu kilat yang mengarah langsung ke mata. Mereka menyarankan untuk memotret dengan lampu kilat eksternal yang bisa diarahkan ke atas, “bouching” kalau tidak salah istilahnya (memanfaatkan cahaya pantulan). Apa daya saya belum punya lampu kilat eksternal. Ada yang tahu soal bahaya lampu kilat pada mata bayi? Tolong dibagi infonya ya kalau ada yang tahu.